diff --git a/flake.nix b/flake.nix index f222823..39cd281 100644 --- a/flake.nix +++ b/flake.nix @@ -22,13 +22,7 @@ nur.url = "github:nix-community/NUR"; }; - outputs = - { self - , nixpkgs - , home-manager - , nur - , ... - }@inputs: + outputs = { self, nixpkgs, home-manager, nur, ... }@inputs: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; @@ -38,9 +32,9 @@ { networking.hostName = host; boot.loader.systemd-boot = { - enable = true; - memtest86.enable = true; - netbootxyz.enable = true; + enable = true; + memtest86.enable = true; + netbootxyz.enable = true; }; boot.loader.timeout = 1; boot.loader.efi.canTouchEfiVariables = true; @@ -48,15 +42,17 @@ nix.settings = { substituters = [ "https://hyprland.cachix.org" ]; - trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; + trusted-public-keys = [ + "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" + ]; experimental-features = [ "nix-command" "flakes" ]; auto-optimise-store = true; }; nix.gc = { - automatic = true; - dates = "daily"; - options = "--delete-older-than 2d"; + automatic = true; + dates = "daily"; + options = "--delete-older-than 2d"; }; programs.zsh.enable = true; @@ -99,12 +95,7 @@ shell = pkgs.zsh; }; - - environment.systemPackages = with pkgs; [ - wget - curl - git - ]; + environment.systemPackages = with pkgs; [ wget curl git ]; services.openssh = { enable = true; @@ -116,7 +107,8 @@ networking.firewall.enable = false; system.stateVersion = "23.11"; - environment.sessionVariables.NIXOS_OZONE_WL = "1"; #hint electron apps to use wayland: + environment.sessionVariables.NIXOS_OZONE_WL = + "1"; # hint electron apps to use wayland: fonts.packages = with pkgs; [ noto-fonts @@ -130,31 +122,25 @@ home-manager.nixosModules.home-manager { home-manager = { - extraSpecialArgs = { inherit inputs; }; # allows access to flake inputs in hm modules + extraSpecialArgs = { + inherit inputs; + }; # allows access to flake inputs in hm modules useGlobalPkgs = true; useUserPackages = true; - users.${user} = { - imports = [ ./home/${host}.nix ]; - }; + users.${user} = { imports = [ ./home/${host}.nix ]; }; }; } ./hosts/${host} ]; - mkSystem = host: cfg: nixpkgs.lib.nixosSystem { - system = cfg.system or "x86_64-linux"; - modules = (commonModules host cfg.user) ++ (cfg.modules or [ ]); - specialArgs = inputs; - }; + mkSystem = host: cfg: + nixpkgs.lib.nixosSystem { + system = cfg.system or "x86_64-linux"; + modules = (commonModules host cfg.user) ++ (cfg.modules or [ ]); + specialArgs = inputs; + }; systems = { - nixos = { - user = "user"; - }; - Kell = { - user = "user"; - }; + nixos = { user = "user"; }; + Kell = { user = "user"; }; }; - in - { - nixosConfigurations = nixpkgs.lib.mapAttrs mkSystem systems; - }; + in { nixosConfigurations = nixpkgs.lib.mapAttrs mkSystem systems; }; } diff --git a/h b/h new file mode 100644 index 0000000..5cd30e3 --- /dev/null +++ b/h @@ -0,0 +1,1483 @@ +diff --git flake.nix flake.nix +index f222823..39cd281 100644 +--- flake.nix ++++ flake.nix +@@ -22,13 +22,7 @@ + nur.url = "github:nix-community/NUR"; + }; +  +- outputs = +- { self +- , nixpkgs +- , home-manager +- , nur +- , ... +- }@inputs: ++ outputs = { self, nixpkgs, home-manager, nur, ... }@inputs: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; +@@ -38,9 +32,9 @@ + { + networking.hostName = host; + boot.loader.systemd-boot = { +- enable = true; +- memtest86.enable = true; +- netbootxyz.enable = true; ++ enable = true; ++ memtest86.enable = true; ++ netbootxyz.enable = true; + }; + boot.loader.timeout = 1; + boot.loader.efi.canTouchEfiVariables = true; +@@ -48,15 +42,17 @@ +  + nix.settings = { + substituters = [ "https://hyprland.cachix.org" ]; +- trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; ++ trusted-public-keys = [ ++ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ++ ]; + experimental-features = [ "nix-command" "flakes" ]; + auto-optimise-store = true; + }; +  + nix.gc = { +- automatic = true; +- dates = "daily"; +- options = "--delete-older-than 2d"; ++ automatic = true; ++ dates = "daily"; ++ options = "--delete-older-than 2d"; + }; +  + programs.zsh.enable = true; +@@ -99,12 +95,7 @@ + shell = pkgs.zsh; + }; +  +- +- environment.systemPackages = with pkgs; [ +- wget +- curl +- git +- ]; ++ environment.systemPackages = with pkgs; [ wget curl git ]; +  + services.openssh = { + enable = true; +@@ -116,7 +107,8 @@ +  + networking.firewall.enable = false; + system.stateVersion = "23.11"; +- environment.sessionVariables.NIXOS_OZONE_WL = "1"; #hint electron apps to use wayland: ++ environment.sessionVariables.NIXOS_OZONE_WL = ++ "1"; # hint electron apps to use wayland: +  + fonts.packages = with pkgs; [ + noto-fonts +@@ -130,31 +122,25 @@ + home-manager.nixosModules.home-manager + { + home-manager = { +- extraSpecialArgs = { inherit inputs; }; # allows access to flake inputs in hm modules ++ extraSpecialArgs = { ++ inherit inputs; ++ }; # allows access to flake inputs in hm modules + useGlobalPkgs = true; + useUserPackages = true; +- users.${user} = { +- imports = [ ./home/${host}.nix ]; +- }; ++ users.${user} = { imports = [ ./home/${host}.nix ]; }; + }; + } + ./hosts/${host} + ]; +- mkSystem = host: cfg: nixpkgs.lib.nixosSystem { +- system = cfg.system or "x86_64-linux"; +- modules = (commonModules host cfg.user) ++ (cfg.modules or [ ]); +- specialArgs = inputs; +- }; +- systems = { +- nixos = { +- user = "user"; +- }; +- Kell = { +- user = "user"; ++ mkSystem = host: cfg: ++ nixpkgs.lib.nixosSystem { ++ system = cfg.system or "x86_64-linux"; ++ modules = (commonModules host cfg.user) ++ (cfg.modules or [ ]); ++ specialArgs = inputs; + }; ++ systems = { ++ nixos = { user = "user"; }; ++ Kell = { user = "user"; }; + }; +- in +- { +- nixosConfigurations = nixpkgs.lib.mapAttrs mkSystem systems; +- }; ++ in { nixosConfigurations = nixpkgs.lib.mapAttrs mkSystem systems; }; + } +diff --git home/Kell.nix home/Kell.nix +index d6205a7..6d95393 100644 +--- home/Kell.nix ++++ home/Kell.nix +@@ -2,13 +2,13 @@ +  + { + imports = [ +- (import ./common.nix { inherit inputs config pkgs; }) +- (import ./hyprland { inherit inputs pkgs; }) +- (import ./waybar { inherit inputs pkgs; }) +- ./rofi +- ./alacritty +- ./firefox +- ./ssh ++ (import ./common.nix { inherit inputs config pkgs; }) ++ (import ./hyprland { inherit inputs pkgs; }) ++ (import ./waybar { inherit inputs pkgs; }) ++ ./rofi ++ ./alacritty ++ ./firefox ++ ./ssh + ]; + services.hyprpaper = { + settings = { +@@ -21,14 +21,8 @@ + }; +  + gtk.iconTheme = { +- name = "Papirus"; +- gtk.iconTheme.package = pkgs.papirus-icon-theme; +- }; +- programs.waybar = { +- settings = { +- mainBar = { +- output = "DP-2"; +- }; +- }; ++ name = "Papirus"; ++ gtk.iconTheme.package = pkgs.papirus-icon-theme; + }; ++ programs.waybar = { settings = { mainBar = { output = "DP-2"; }; }; }; + } +diff --git home/alacritty/default.nix home/alacritty/default.nix +index dc9799f..b8e2d40 100644 +--- home/alacritty/default.nix ++++ home/alacritty/default.nix +@@ -77,51 +77,51 @@ + action = "ReceiveChar"; + } + { +- chars = "\u001B[72;6u"; ++ chars = "u001B[72;6u"; + key = "H"; + mods = "Control|Shift"; + } + { +- chars = "\u001B[74;6u"; ++ chars = "u001B[74;6u"; + key = "J"; + mods = "Control|Shift"; + } + { +- chars = "\u001B[75;6u"; ++ chars = "u001B[75;6u"; + key = "K"; + mods = "Control|Shift"; + } + { +- chars = "\u001B[76;6u"; ++ chars = "u001B[76;6u"; + key = "L"; + mods = "Control|Shift"; + } + { +- chars = "\u001B[105;5u"; ++ chars = "u001B[105;5u"; + key = "I"; + mods = "Control"; + } + { +- chars = "\u001B[46;5u"; ++ chars = "u001B[46;5u"; + key = "Period"; + mods = "Control"; + } + { +- chars = "\u001B[44;5u"; ++ chars = "u001B[44;5u"; + key = "Comma"; + mods = "Control"; + } + { +- chars = "\u001B[59;5u"; ++ chars = "u001B[59;5u"; + key = "Semicolon"; + mods = "Control"; + } + { +- chars = "\u001B[13;2u"; ++ chars = "u001B[13;2u"; + key = "Return"; + mods = "Shift"; + } + ]; +- }; + }; +- } ++ }; ++} +diff --git home/common.nix home/common.nix +index 5e568e8..93d0d6b 100644 +--- home/common.nix ++++ home/common.nix +@@ -1,23 +1,13 @@ + { inputs, config, pkgs, ... }: +  + { +- imports = [ +- ./zsh +- ./git +- ./nvim +- ./email +- ./lf +- ]; ++ imports = [ ./zsh ./git ./nvim ./email ./lf ]; +  + home.stateVersion = "24.11"; + targets.genericLinux.enable = true; + nixpkgs.config.allowUnfree = true; + programs.home-manager.enable = true; +- home.packages = with pkgs; [ +- htop +- waypipe +- ]; +- ++ home.packages = with pkgs; [ htop waypipe ]; +  + home.sessionVariables = { + XDG_CONFIG_HOME = "${config.xdg.configHome}"; +diff --git home/email/default.nix home/email/default.nix +index caeaa36..6140376 100644 +--- home/email/default.nix ++++ home/email/default.nix +@@ -2,26 +2,21 @@ +  + { + home.file = { +- ".mailcap".text = "text/html; w3m -dump -o -document_charset=%{charset} %s; nametemplate=%s.html; copiousoutput"; ++ ".mailcap".text = ++ "text/html; w3m -dump -o -document_charset=%{charset} %s; nametemplate=%s.html; copiousoutput"; + }; +- home.packages = with pkgs; [ +- mailcap +- ]; ++ home.packages = with pkgs; [ mailcap ]; +  + programs.notmuch = { + enable = true; + extraConfig = { +- database = { +- path = "/home/user/.config/aerc/mail"; +- }; ++ database = { path = "/home/user/.config/aerc/mail"; }; + user = { + name = "Thomas Avé"; + primary_email = "email@thomasave.be"; + other_email = "Thomas.Ave@uantwerpen.be;Thomas.Ave@imec.be;"; + }; +- maildir = { +- synchronize_flags = "true"; +- }; ++ maildir = { synchronize_flags = "true"; }; + }; + }; + programs.aerc = { +@@ -157,9 +152,7 @@ + }; + }; + extraConfig = { +- general = { +- term = "xterm-256color"; +- }; ++ general = { term = "xterm-256color"; }; + ui = { + border-char-vertical = "│"; + border-char-horizontal = "─"; +@@ -170,12 +163,8 @@ + dirlist-right = "{{if .Unread}}{{humanReadable .Unread}}{{end}}"; + dirlist-tree = true; + }; +- viewer = { +- pager = "nvim -u $XDG_CONFIG_HOME/nvim/aerc.lua"; +- }; +- compose = { +- address-book-cmd = "notmuch address \"\%s\""; +- }; ++ viewer = { pager = "nvim -u $XDG_CONFIG_HOME/nvim/aerc.lua"; }; ++ compose = { address-book-cmd = ''notmuch address "%s"''; }; + multipart-converters = { + "text/html" = "w3m -dump -o display_link_number=1 -T text/html"; + }; +@@ -185,13 +174,14 @@ + "message/delivery-status" = "cat"; + "message/rfc822" = "cat"; + "text/html" = "w3m -dump -o display_link_number=1 -T text/html"; +- "text/*" = "bat -fP --file-name=\"$AERC_FILENAME\""; ++ "text/*" = ''bat -fP --file-name="$AERC_FILENAME"''; + "application/x-sh" = "bat -fP -l sh"; + }; + }; + }; +  +- home.file."${config.xdg.configHome}/aerc/map.conf".text = "Inbox=tag:inbox and not tag:archived and not tag:deleted"; ++ home.file."${config.xdg.configHome}/aerc/map.conf".text = ++ "Inbox=tag:inbox and not tag:archived and not tag:deleted"; + home.file."${config.xdg.configHome}/aerc/stylesets/catppuccin-mocha".text = '' + *.default=true + *.normal=true +diff --git home/firefox/default.nix home/firefox/default.nix +index 4ba4256..72c6564 100644 +--- home/firefox/default.nix ++++ home/firefox/default.nix +@@ -1,98 +1,106 @@ +-{inputs, pkgs, ...}: ++{ inputs, pkgs, ... }: + let +-lock-false = { ++ lock-false = { + Value = false; + Status = "locked"; +-}; +-lock-true = { ++ }; ++ lock-true = { + Value = true; + Status = "locked"; +-}; +-in +-{ +- programs.firefox = { +- enable = true; +- policies = { +- DisableTelemetry = true; +- DisableFirefoxStudies = true; +- DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab" +- EnableTrackingProtection = { +- Value = true; +- Locked = true; +- Cryptomining = true; +- Fingerprinting = true; +- }; +- ExtensionSettings = { +- "{c7c120ff-2878-4e59-a5a3-cd4d1655bc13}" = { +- install_url = "file://${./files/signed.xpi}"; +- installation_mode = "normal_installed"; +- }; +- "@contain-google" = { +- install_url = "https://addons.mozilla.org/firefox/downloads/latest/google-container/latest.xpi"; +- installation_mode = "normal_installed"; +- }; +- "{ea4204c0-3209-4116-afd2-2a208e21a779}" = { +- install_url = "https://addons.mozilla.org/firefox/downloads/latest/enable-bing-chat/latest.xpi"; +- installation_mode = "normal_installed"; +- }; +- "{3e4d2037-d300-4e95-859d-3cba866f46d3}" = { +- install_url = "https://addons.mozilla.org/firefox/downloads/latest/private-internet-access-ext/latest.xpi"; +- installation_mode = "normal_installed"; +- }; +- }; ++ }; ++in { ++ programs.firefox = { ++ enable = true; ++ policies = { ++ DisableTelemetry = true; ++ DisableFirefoxStudies = true; ++ DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab" ++ EnableTrackingProtection = { ++ Value = true; ++ Locked = true; ++ Cryptomining = true; ++ Fingerprinting = true; ++ }; ++ ExtensionSettings = { ++ "{c7c120ff-2878-4e59-a5a3-cd4d1655bc13}" = { ++ install_url = "file://${./files/signed.xpi}"; ++ installation_mode = "normal_installed"; ++ }; ++ "@contain-google" = { ++ install_url = ++ "https://addons.mozilla.org/firefox/downloads/latest/google-container/latest.xpi"; ++ installation_mode = "normal_installed"; ++ }; ++ "{ea4204c0-3209-4116-afd2-2a208e21a779}" = { ++ install_url = ++ "https://addons.mozilla.org/firefox/downloads/latest/enable-bing-chat/latest.xpi"; ++ installation_mode = "normal_installed"; ++ }; ++ "{3e4d2037-d300-4e95-859d-3cba866f46d3}" = { ++ install_url = ++ "https://addons.mozilla.org/firefox/downloads/latest/private-internet-access-ext/latest.xpi"; ++ installation_mode = "normal_installed"; ++ }; ++ }; +  ++ }; ++ profiles = { ++ default = { ++ id = 0; ++ name = "default"; ++ isDefault = true; ++ search = { ++ force = true; ++ default = "DuckDuckGo"; ++ order = [ "DuckDuckGo" "Google" ]; + }; +- profiles = { +- default = { +- id = 0; +- name = "default"; +- isDefault = true; +- search = { +- force = true; +- default = "DuckDuckGo"; +- order = [ "DuckDuckGo" "Google" ]; +- }; +- extensions = with pkgs.nur.repos.rycee.firefox-addons; [ +- ublock-origin +- bitwarden +- privacy-badger +- beyond-20 +- display-_anchors +- facebook-container +- multi-account-containers +- istilldontcareaboutcookies +- return-youtube-dislikes +- sponsorblock +- unpaywall +- vimium +- ]; +- settings = { +- "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.newtabpage.activity-stream.showSponsored" = lock-false; +- "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; +- "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; +- "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; +- }; +- }; ++ extensions = with pkgs.nur.repos.rycee.firefox-addons; [ ++ ublock-origin ++ bitwarden ++ privacy-badger ++ beyond-20 ++ display-_anchors ++ facebook-container ++ multi-account-containers ++ istilldontcareaboutcookies ++ return-youtube-dislikes ++ sponsorblock ++ unpaywall ++ vimium ++ ]; ++ settings = { ++ "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.newtabpage.activity-stream.showSponsored" = lock-false; ++ "browser.newtabpage.activity-stream.system.showSponsored" = ++ lock-false; ++ "browser.newtabpage.activity-stream.showSponsoredTopSites" = ++ lock-false; ++ "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; + }; ++ }; + }; ++ }; +  +- xdg.mimeApps.defaultApplications = { +- "text/html" = ["firefox.desktop"]; +- "text/xml" = ["firefox.desktop"]; +- "x-scheme-handler/http" = ["firefox.desktop"]; +- "x-scheme-handler/https" = ["firefox.desktop"]; +- }; ++ xdg.mimeApps.defaultApplications = { ++ "text/html" = [ "firefox.desktop" ]; ++ "text/xml" = [ "firefox.desktop" ]; ++ "x-scheme-handler/http" = [ "firefox.desktop" ]; ++ "x-scheme-handler/https" = [ "firefox.desktop" ]; ++ }; + } +diff --git home/hyprland/default.nix home/hyprland/default.nix +index b7b4e09..ab282dc 100644 +--- home/hyprland/default.nix ++++ home/hyprland/default.nix +@@ -1,7 +1,4 @@ +-{ inputs +-, pkgs +-, ... +-}: ++{ inputs, pkgs, ... }: + let + hyprland = inputs.hyprland.packages.${pkgs.system}.hyprland; + playerctl = "${pkgs.playerctl}/bin/playerctl"; +@@ -17,11 +14,11 @@ let + rofi = "${pkgs.rofi}/bin/rofi"; + jq = "${pkgs.jq}/bin/jq"; + rofi-ykman = pkgs.writeShellScriptBin "rofi-ykman" '' +- accounts=''$(${pkgs.yubikey-manager}/bin/ykman oath accounts list) ++ accounts=$(${pkgs.yubikey-manager}/bin/ykman oath accounts list) + prompt="YubiKey OATH" +- account=''$(echo "''${accounts/, TOTP/\n}" | awk '{ print $0 "\0icon\x1fyubioath"; }' | ${rofi} -dmenu -i -p "''$prompt" ''${shortcuts[@]}) +- code=''$(${pkgs.yubikey-manager}/bin/ykman oath accounts code "''$account") +- IFS=', ' read -r -a code <<< "''$code" ++ account=$(echo "''${accounts/, TOTP/\n}" | awk '{ print $0 "\0icon\x1fyubioath"; }' | ${rofi} -dmenu -i -p "$prompt" ''${shortcuts[@]}) ++ code=$(${pkgs.yubikey-manager}/bin/ykman oath accounts code "$account") ++ IFS=', ' read -r -a code <<< "$code" + echo -n "''${code[-1]}" | ${pkgs.wl-clipboard}/bin/wl-copy; + ''; +  +@@ -60,25 +57,21 @@ let + fi + fi + ''; +-in +-{ ++in { + services.kdeconnect = { + enable = true; + package = pkgs.kdePackages.kdeconnect-kde; + indicator = true; + }; +  +- home.packages = with pkgs; [ +- wl-clipboard +- ]; ++ home.packages = with pkgs; [ wl-clipboard ]; +  + services.hyprpaper = { + enable = true; + settings = { + ipc = "on"; + splash = false; +- preload = +- [ "${./files/wallpaper.png}" ]; ++ preload = [ "${./files/wallpaper.png}" ]; + wallpaper = [ + # Fill in by host-specific config! + # "Display,${./files/wallpaper.png}" +@@ -127,9 +120,7 @@ in + "TERMINAL,${alacritty}" + "WLR_RENDERER_ALLOW_SOFTWARE,1" + ]; +- debug = { +- disable_logs = false; +- }; ++ debug = { disable_logs = false; }; + windowrulev2 = [ + "float, title:^(rofi)(.*)$" + "center, title:^(rofi)(.*)$" +@@ -138,9 +129,7 @@ in + "minsize 1 1, title:^()$,class:^(steam)$" + "stayfocused, title:^()$,class:^(steam)$" + ]; +- windowrule = [ +- "noanim,waybar" +- ]; ++ windowrule = [ "noanim,waybar" ]; + monitor = [ + "DP-3,preferred,0x550,1" + "DP-2,preferred,1920x0,1" +@@ -160,20 +149,12 @@ in + kb_options = "compose:rctrl, caps:super, altwin:swap_alt_win"; + numlock_by_default = true; + }; +- binds = { +- scroll_event_delay = 1; +- }; +- xwayland = { +- force_zero_scaling = true; +- }; +- misc = { +- disable_hyprland_logo = 1; +- }; ++ binds = { scroll_event_delay = 1; }; ++ xwayland = { force_zero_scaling = true; }; ++ misc = { disable_hyprland_logo = 1; }; + decoration = { + rounding = 1; +- blur = { +- enabled = false; +- }; ++ blur = { enabled = false; }; + }; + animations = { + enabled = "yes"; +@@ -216,11 +197,14 @@ in + "$mainMod, F, togglefloating," + "$mainMod, SPACE, togglesplit, # dwindle" + "CONTROL_L ALT_L, L, exec, ${swaylock}" +- "$mainMod, C, exec, cliphist list | awk '{print $0, \"\0icon\x1fcom.github.davidmhewitt.clipped\"}' | ${rofi} -dmenu -display-columns 2 | cliphist decode | wl-copy" ++ '' ++ $mainMod, C, exec, cliphist list | awk '{print $0, "0iconx1fcom.github.davidmhewitt.clipped"}' | ${rofi} -dmenu -display-columns 2 | cliphist decode | wl-copy'' + "$mainMod, Y, exec, ${rofi-ykman}/bin/rofi-ykman" + "$mainMod, N, exec, ${./files/rofi-ssh.sh}" +  +- "$mainMod, Escape, exec, ${rofi} -show power-menu -modi power-menu:${./files/rofi-power-menu.sh}" ++ "$mainMod, Escape, exec, ${rofi} -show power-menu -modi power-menu:${ ++ ./files/rofi-power-menu.sh ++ }" +  + ",XF86MonBrightnessUp, exec, xbacklight -inc 10" + ",XF86MonBrightnessDown, exec, xbacklight -dec 10" +@@ -235,7 +219,7 @@ in + "$mainMod,XF86AudioMute, exec, ${playerctl} play-pause" + "$mainMod,XF86AudioRaiseVolume, exec, ${playerctl} next" + "$mainMod,XF86AudioLowerVolume, exec, ${playerctl} previous" +- ", Print, exec, grim -g \"$(slurp -d)\" - | wl-copy" ++ '', Print, exec, grim -g "$(slurp -d)" - | wl-copy'' +  + "$mainMod, H, exec, ${./files/vim-hypr-nav.sh} l" + "$mainMod, L, exec, ${./files/vim-hypr-nav.sh} r" +@@ -257,27 +241,16 @@ in + "$mainMod, T, split-workspace, empty" + "$mainMod, TAB, split-workspace, m+1" + "$mainMod SHIFT, TAB, split-workspace, m-1" +- ] +- ++ ( ++ ] ++ ( + # workspaces + # binds $mod + [shift +] {1..10} to [move to] workspace {1..10} +- builtins.concatLists (builtins.genList +- ( +- x: +- let +- ws = +- let +- c = (x + 1) / 10; +- in +- builtins.toString (x + 1 - (c * 10)); +- in +- [ +- "$mainMod, ${ws}, split-workspace, ${toString (x + 1)}" +- "$mainMod SHIFT, ${ws}, split-movetoworkspace, ${toString (x + 1)}" +- ] +- ) +- 10) +- ); ++ builtins.concatLists (builtins.genList (x: ++ let ++ ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10)); ++ in [ ++ "$mainMod, ${ws}, split-workspace, ${toString (x + 1)}" ++ "$mainMod SHIFT, ${ws}, split-movetoworkspace, ${toString (x + 1)}" ++ ]) 10)); + }; + }; + } +diff --git home/lf/default.nix home/lf/default.nix +index 804fe46..d16c150 100644 +--- home/lf/default.nix ++++ home/lf/default.nix +@@ -19,8 +19,8 @@ + "" = "quit"; + "" = "half-up"; + "." = "set hidden!"; +- "o" = "$nvim -c \"lua require(\\\"oil\\\").open(\\\"$PWD\\\")\""; +- "-" = "$nvim -c \"lua require(\\\"oil\\\").open(\\\"$PWD\\\")\""; ++ "o" = ''$nvim -c "lua require(\"oil\").open(\"$PWD\")"''; ++ "-" = ''$nvim -c "lua require(\"oil\").open(\"$PWD\")"''; + "" = "open"; + "" = ":jump "; + }; +@@ -32,8 +32,6 @@ + }} + ''; + }; +- cmdKeybindings = { +- q = "quit"; +- }; ++ cmdKeybindings = { q = "quit"; }; + }; + } +diff --git home/nixos.nix home/nixos.nix +index ee6fc52..bfb8d58 100644 +--- home/nixos.nix ++++ home/nixos.nix +@@ -2,25 +2,17 @@ +  + { + imports = [ +- (import ./common.nix { inherit inputs config pkgs; }) +- (import ./hyprland { inherit inputs pkgs; }) +- (import ./waybar { inherit inputs pkgs; }) +- ./rofi ++ (import ./common.nix { inherit inputs config pkgs; }) ++ (import ./hyprland { inherit inputs pkgs; }) ++ (import ./waybar { inherit inputs pkgs; }) ++ ./rofi + ]; +  + services.hyprpaper = { + settings = { +- wallpaper = [ +- "Virtual-1,${./hyprland/files/wallpaper.png}" +- ]; ++ wallpaper = [ "Virtual-1,${./hyprland/files/wallpaper.png}" ]; + }; + }; +  +- programs.waybar = { +- settings = { +- mainBar = { +- output = "Virtual-1"; +- }; +- }; +- }; ++ programs.waybar = { settings = { mainBar = { output = "Virtual-1"; }; }; }; + } +diff --git home/rofi/default.nix home/rofi/default.nix +index dd65147..a5931ab 100644 +--- home/rofi/default.nix ++++ home/rofi/default.nix +@@ -1,9 +1,7 @@ + { config, pkgs, ... }: +  + { +- home.packages = with pkgs; [ +- papirus-icon-theme +- ]; ++ home.packages = with pkgs; [ papirus-icon-theme ]; +  + programs.rofi = { + enable = true; +@@ -14,120 +12,115 @@ + kb-cancel = "Super_L+XF86Launch5,Escape"; + combi-hide-mode-prefix = true; + }; +- theme = +- let +- inherit (config.lib.formats.rasi) mkLiteral; +- in +- { +- "*" = { +- background = mkLiteral "#0f111a"; +- foreground = mkLiteral "#f1f1f1"; +- selected = mkLiteral "#0033a1"; +- selected-text = mkLiteral "#ffffff"; +- }; +- +- "window" = { +- transparency = "real"; +- background-color = mkLiteral "@background"; +- text-color = mkLiteral "@foreground"; +- width = mkLiteral "800px"; +- border-radius = mkLiteral "5px"; +- }; +- +- "textbox-prompt-colon" = { +- expand = mkLiteral "false"; +- background-color = mkLiteral "@background"; +- padding = mkLiteral "4px 0px 0px 6px"; +- }; +- +- "inputbar" = { +- children = mkLiteral "[ textbox-prompt-colon, entry ]"; +- background-color = mkLiteral "@background"; +- text-color = mkLiteral "@foreground"; +- expand = mkLiteral "false"; +- border = mkLiteral "0px 0px 0px 0px"; +- border-radius = mkLiteral "0px"; +- border-color = mkLiteral "@selected"; +- margin = mkLiteral "0px 0px 0px 0px"; +- padding = mkLiteral "0px 0px 4px 0px"; +- position = mkLiteral "center"; +- }; +- +- "entry" = { +- background-color = mkLiteral "@background"; +- text-color = mkLiteral "@foreground"; +- placeholder-color = mkLiteral "@foreground"; +- expand = mkLiteral "true"; +- horizontal-align = mkLiteral "0"; +- blink = mkLiteral "true"; +- padding = mkLiteral "4px 0px 0px 4px"; +- font = "SF Pro Rounded 25"; +- }; +- +- "case-indicator" = { +- background-color = mkLiteral "@background"; +- text-color = mkLiteral "@foreground"; +- spacing = mkLiteral "0"; +- }; +- +- "listview" = { +- background-color = mkLiteral "@background"; +- columns = mkLiteral "1"; +- spacing = mkLiteral "5px"; +- cycle = mkLiteral "true"; +- dynamic = mkLiteral "true"; +- layout = mkLiteral "vertical"; +- fixed-height = "true"; +- lines = mkLiteral "5"; +- }; +- +- "mainbox" = { +- background-color = mkLiteral "@background"; +- children = mkLiteral "[ inputbar, message, listview ]"; +- spacing = mkLiteral "20px"; +- padding = mkLiteral "20px 15px 15px 15px"; +- }; +- +- "message" = { +- children = mkLiteral "[ textbox ]"; +- border-radius = mkLiteral "5px"; +- }; +- +- "textbox" = { +- background-color = mkLiteral "@selected"; +- text-color = mkLiteral "@foreground"; +- padding = mkLiteral "20px 6px 20px 80px"; +- }; +- +- "element" = { +- background-color = mkLiteral "@background"; +- text-color = mkLiteral "@foreground"; +- orientation = mkLiteral "horizontal"; +- border-radius = mkLiteral "4px"; +- padding = mkLiteral "2px 2px 2px 2px"; +- }; +- +- "element-text, element-icon" = { +- background-color = mkLiteral "inherit"; +- text-color = mkLiteral "inherit"; +- }; +- +- "element-icon" = { +- size = mkLiteral "40px"; +- border = mkLiteral "10px"; +- }; +- +- "element-text" = { +- padding = mkLiteral "20px 0px 0px 10px"; +- }; +- +- "element selected" = { +- background-color = mkLiteral "@selected"; +- text-color = mkLiteral "@selected-text"; +- border = mkLiteral "0px"; +- border-radius = mkLiteral "3px"; +- border-color = mkLiteral "@selected"; +- }; ++ theme = let inherit (config.lib.formats.rasi) mkLiteral; ++ in { ++ "*" = { ++ background = mkLiteral "#0f111a"; ++ foreground = mkLiteral "#f1f1f1"; ++ selected = mkLiteral "#0033a1"; ++ selected-text = mkLiteral "#ffffff"; + }; ++ ++ "window" = { ++ transparency = "real"; ++ background-color = mkLiteral "@background"; ++ text-color = mkLiteral "@foreground"; ++ width = mkLiteral "800px"; ++ border-radius = mkLiteral "5px"; ++ }; ++ ++ "textbox-prompt-colon" = { ++ expand = mkLiteral "false"; ++ background-color = mkLiteral "@background"; ++ padding = mkLiteral "4px 0px 0px 6px"; ++ }; ++ ++ "inputbar" = { ++ children = mkLiteral "[ textbox-prompt-colon, entry ]"; ++ background-color = mkLiteral "@background"; ++ text-color = mkLiteral "@foreground"; ++ expand = mkLiteral "false"; ++ border = mkLiteral "0px 0px 0px 0px"; ++ border-radius = mkLiteral "0px"; ++ border-color = mkLiteral "@selected"; ++ margin = mkLiteral "0px 0px 0px 0px"; ++ padding = mkLiteral "0px 0px 4px 0px"; ++ position = mkLiteral "center"; ++ }; ++ ++ "entry" = { ++ background-color = mkLiteral "@background"; ++ text-color = mkLiteral "@foreground"; ++ placeholder-color = mkLiteral "@foreground"; ++ expand = mkLiteral "true"; ++ horizontal-align = mkLiteral "0"; ++ blink = mkLiteral "true"; ++ padding = mkLiteral "4px 0px 0px 4px"; ++ font = "SF Pro Rounded 25"; ++ }; ++ ++ "case-indicator" = { ++ background-color = mkLiteral "@background"; ++ text-color = mkLiteral "@foreground"; ++ spacing = mkLiteral "0"; ++ }; ++ ++ "listview" = { ++ background-color = mkLiteral "@background"; ++ columns = mkLiteral "1"; ++ spacing = mkLiteral "5px"; ++ cycle = mkLiteral "true"; ++ dynamic = mkLiteral "true"; ++ layout = mkLiteral "vertical"; ++ fixed-height = "true"; ++ lines = mkLiteral "5"; ++ }; ++ ++ "mainbox" = { ++ background-color = mkLiteral "@background"; ++ children = mkLiteral "[ inputbar, message, listview ]"; ++ spacing = mkLiteral "20px"; ++ padding = mkLiteral "20px 15px 15px 15px"; ++ }; ++ ++ "message" = { ++ children = mkLiteral "[ textbox ]"; ++ border-radius = mkLiteral "5px"; ++ }; ++ ++ "textbox" = { ++ background-color = mkLiteral "@selected"; ++ text-color = mkLiteral "@foreground"; ++ padding = mkLiteral "20px 6px 20px 80px"; ++ }; ++ ++ "element" = { ++ background-color = mkLiteral "@background"; ++ text-color = mkLiteral "@foreground"; ++ orientation = mkLiteral "horizontal"; ++ border-radius = mkLiteral "4px"; ++ padding = mkLiteral "2px 2px 2px 2px"; ++ }; ++ ++ "element-text, element-icon" = { ++ background-color = mkLiteral "inherit"; ++ text-color = mkLiteral "inherit"; ++ }; ++ ++ "element-icon" = { ++ size = mkLiteral "40px"; ++ border = mkLiteral "10px"; ++ }; ++ ++ "element-text" = { padding = mkLiteral "20px 0px 0px 10px"; }; ++ ++ "element selected" = { ++ background-color = mkLiteral "@selected"; ++ text-color = mkLiteral "@selected-text"; ++ border = mkLiteral "0px"; ++ border-radius = mkLiteral "3px"; ++ border-color = mkLiteral "@selected"; ++ }; ++ }; + }; + } +diff --git home/ssh/default.nix home/ssh/default.nix +index 4b8ebfb..4b800d1 100644 +--- home/ssh/default.nix ++++ home/ssh/default.nix +@@ -1,66 +1,66 @@ + { inputs, config, pkgs, ... }: +  + { +- programs.ssh = { +- enable = true; +- includes = ["gpulab_hosts_config"]; +- matchBlocks = { +- mallorea = { +- host = "mallorea"; +- hostname = "server.thomasave.be"; +- port = 22; +- user = "server"; +- forwardAgent = true; +- }; +- Mallorea = { +- host = "Mallorea"; +- hostname = "server.thomasave.be"; +- port = 22; +- user = "server"; +- forwardAgent = true; +- }; +- Kell = { +- host = "Kell"; +- hostname = "kell.thomasave.be"; +- port = 22; +- user = "user"; +- forwardAgent = true; +- }; +- kell = { +- host = "kell"; +- hostname = "kell.thomasave.be"; +- port = 22; +- user = "user"; +- forwardAgent = true; +- }; +- Riva = { +- host = "Riva"; +- hostname = "riva.thomasave.be"; +- port = 22; +- user = "user"; +- forwardAgent = true; +- }; +- riva = { +- host = "riva"; +- hostname = "riva.thomasave.be"; +- port = 22; +- user = "user"; +- forwardAgent = true; +- }; +- Vault = { +- host = "Vault"; +- hostname = "etienne.thomasave.be"; +- port = 22; +- user = "server"; +- forwardAgent = true; +- }; +- vault = { +- host = "vault"; +- hostname = "etienne.thomasave.be"; +- port = 22; +- user = "server"; +- forwardAgent = true; +- }; +- }; ++ programs.ssh = { ++ enable = true; ++ includes = [ "gpulab_hosts_config" ]; ++ matchBlocks = { ++ mallorea = { ++ host = "mallorea"; ++ hostname = "server.thomasave.be"; ++ port = 22; ++ user = "server"; ++ forwardAgent = true; ++ }; ++ Mallorea = { ++ host = "Mallorea"; ++ hostname = "server.thomasave.be"; ++ port = 22; ++ user = "server"; ++ forwardAgent = true; ++ }; ++ Kell = { ++ host = "Kell"; ++ hostname = "kell.thomasave.be"; ++ port = 22; ++ user = "user"; ++ forwardAgent = true; ++ }; ++ kell = { ++ host = "kell"; ++ hostname = "kell.thomasave.be"; ++ port = 22; ++ user = "user"; ++ forwardAgent = true; ++ }; ++ Riva = { ++ host = "Riva"; ++ hostname = "riva.thomasave.be"; ++ port = 22; ++ user = "user"; ++ forwardAgent = true; ++ }; ++ riva = { ++ host = "riva"; ++ hostname = "riva.thomasave.be"; ++ port = 22; ++ user = "user"; ++ forwardAgent = true; ++ }; ++ Vault = { ++ host = "Vault"; ++ hostname = "etienne.thomasave.be"; ++ port = 22; ++ user = "server"; ++ forwardAgent = true; ++ }; ++ vault = { ++ host = "vault"; ++ hostname = "etienne.thomasave.be"; ++ port = 22; ++ user = "server"; ++ forwardAgent = true; ++ }; + }; ++ }; + } +diff --git home/waybar/default.nix home/waybar/default.nix +index e509df7..fa1b436 100644 +--- home/waybar/default.nix ++++ home/waybar/default.nix +@@ -1,7 +1,4 @@ +-{ inputs +-, pkgs +-, ... +-}: ++{ inputs, pkgs, ... }: +  + { + programs.waybar = { +@@ -15,7 +12,18 @@ + # output = "DP-2"; # Fill in with host-specific config! + modules-left = [ "wlr/taskbar" ]; + modules-center = [ "hyprland/workspaces" ]; +- modules-right = [ "tray" "wireplumber" "cpu#cpu2" "cpu" "memory" "custom/updates" "temperature" "battery" "clock" "clock#clock2" ]; ++ modules-right = [ ++ "tray" ++ "wireplumber" ++ "cpu#cpu2" ++ "cpu" ++ "memory" ++ "custom/updates" ++ "temperature" ++ "battery" ++ "clock" ++ "clock#clock2" ++ ]; + "wlr/taskbar" = { + on-click = "activate"; + on-click-right = "close"; +@@ -34,12 +42,8 @@ + warp-on-scroll = false; + format = "{name}"; + }; +- "hyprland/window" = { +- max-length = 50; +- }; +- tray = { +- spacing = 10; +- }; ++ "hyprland/window" = { max-length = 50; }; ++ tray = { spacing = 10; }; + "clock#clock2" = { + timezone = "Europe/Brussels"; + format = "{:%H:%M:%S}"; +@@ -61,8 +65,10 @@ + interval = 5; + }; + "custom/updates" = { +- exec = "bash -c \"checkupdates | wc -l\""; +- on-click = "alacritty -e bash -c \"yay ; echo '\nDone, press any key to exit...' ; read\""; ++ exec = ''bash -c "checkupdates | wc -l"''; ++ on-click = '' ++ alacritty -e bash -c "yay ; echo ' ++ Done, press any key to exit...' ; read"''; + interval = 60; + format = "{}  "; + }; +diff --git home/zsh/default.nix home/zsh/default.nix +index d910b27..419344e 100644 +--- home/zsh/default.nix ++++ home/zsh/default.nix +@@ -17,7 +17,8 @@ + BROWSER = "firefox"; + GPULAB_CERT = "${config.xdg.dataHome}/gpulab.pem"; + GPULAB_DEV = "False"; +- GCC_COLORS = "error = '01;31:warning = '01;35:note = '01;36:caret = '01;32:locus = '01:quote = '01'"; ++ GCC_COLORS = ++ "error = '01;31:warning = '01;35:note = '01;36:caret = '01;32:locus = '01:quote = '01'"; + ARCHFLAGS = "-arch x86_64"; + TERM = "screen-256color"; + PYTHONDONTWRITEBYTECODE = "1"; +@@ -28,9 +29,7 @@ + enable = true; + enableZshIntegration = true; + }; +- programs.fzf = { +- enable = true; +- }; ++ programs.fzf = { enable = true; }; + programs.zsh = { + enable = true; + enableCompletion = true; +@@ -62,17 +61,22 @@ +  + ll = "ls -lhat"; + ls = "ls --color=auto"; +- lf = "cd \"\$(${pkgs.lf}/bin/lf -print-last-dir)\""; ++ lf = ''cd "$(${pkgs.lf}/bin/lf -print-last-dir)"''; +  + compress = "tar --use-compress-program = lbzip2 -cvf"; +- wget = "wget --hsts-file = \"$XDG_DATA_HOME/wget-hsts\""; ++ wget = ''wget --hsts-file = "$XDG_DATA_HOME/wget-hsts"''; + python = "python3"; +- v = "nvim -c ':lua require(\"oil\").open()' && cd \"\$(cat /tmp/oil_dir 2> /dev/null || pwd)\""; +- cpr = "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1"; +- mvr = "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1 --remove-source-files"; +- rg = "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'"; +- ag = "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'"; +- push = "git add -A && git commit -m \"`date`\" && git push"; ++ v = '' ++ nvim -c ':lua require("oil").open()' && cd "$(cat /tmp/oil_dir 2> /dev/null || pwd)"''; ++ cpr = ++ "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1"; ++ mvr = ++ "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1 --remove-source-files"; ++ rg = ++ "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'"; ++ ag = ++ "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'"; ++ push = ''git add -A && git commit -m "`date`" && git push''; + reset = "tput reset"; + }; + history.size = 10000000; +diff --git hosts/Kell/default.nix hosts/Kell/default.nix +index 3ff7f53..a4bcf8d 100644 +--- hosts/Kell/default.nix ++++ hosts/Kell/default.nix +@@ -1,64 +1,59 @@ +-{inputs, pkgs, ...}: ++{ inputs, pkgs, ... }: +  + { + services.pcscd.enable = true; + services.udev.packages = [ pkgs.yubikey-personalization ]; +- services.logind.extraConfig = '' ++ services.logind.extraConfig = '' + # don’t shutdown when power button is short-pressed + HandlePowerKey=suspend + ''; +  ++ # Calendar ++ programs.dconf.enable = true; ++ services.gnome.evolution-data-server.enable = true; ++ services.gnome.gnome-online-accounts.enable = true; ++ services.gnome.gnome-keyring.enable = true; ++ environment.systemPackages = with pkgs; [ wireguard-tools ]; ++ # Add the server using gnome-online-accounts: ++ # nix-shell -p gnome.gnome-control-center --run "gnome-control-center" ++ # Just add the main webdav server and gnome-calendar will automatically pick up all available calendars. +  +- # Calendar +- programs.dconf.enable = true; +- services.gnome.evolution-data-server.enable = true; +- services.gnome.gnome-online-accounts.enable = true; +- services.gnome.gnome-keyring.enable = true; +- environment.systemPackages = with pkgs; [ +- wireguard-tools +- ]; +- # Add the server using gnome-online-accounts: +- # nix-shell -p gnome.gnome-control-center --run "gnome-control-center" +- # Just add the main webdav server and gnome-calendar will automatically pick up all available calendars. +- +- networking.wg-quick.interfaces = { +- wg0 = { +- address = [ "10.0.0.10/24" " 2a02:a03f:83ad:2101::2/128" ]; +- dns = [ "10.0.0.1" "fdc9:281f:04d7:9ee9::1" ]; +- privateKeyFile = "/home/user/.secrets/Wireguard/wg0.key"; +- listenPort = 51820; +- peers = [ +- { +- publicKey = "/9ppjm3yeD0duDvxrqgcHscHmftXko+0s2RbivNEy2c="; +- allowedIPs = [ "10.0.0.1/8" ]; +- endpoint = "192.168.1.1:13231"; +- } +- ]; +- }; +- }; +- fileSystems."/home/server" = { +- device = "192.168.1.2:/home/server"; +- fsType = "nfs"; +- options = [ "x-systemd.automount" "noauto" ]; +- }; +- fileSystems."/home/user/Workspace" = { +- device = "192.168.1.2:/home/server/Workspace"; +- fsType = "nfs"; +- options = [ "x-systemd.automount" "noauto" ]; +- }; +- fileSystems."/home/user/Documents" = { +- device = "192.168.1.2:/home/server/Storage/Thomas/Documents"; +- fsType = "nfs"; +- options = [ "x-systemd.automount" "noauto" ]; +- }; +- fileSystems."/home/user/Pictures" = { +- device = "192.168.1.2:/home/server/Storage/Thomas/Pictures"; +- fsType = "nfs"; +- options = [ "x-systemd.automount" "noauto" ]; +- }; +- fileSystems."/home/user/Videos" = { +- device = "192.168.1.2:/home/server/Storage/Thomas/Videos"; +- fsType = "nfs"; +- options = [ "x-systemd.automount" "noauto" ]; +- }; ++ networking.wg-quick.interfaces = { ++ wg0 = { ++ address = [ "10.0.0.10/24" " 2a02:a03f:83ad:2101::2/128" ]; ++ dns = [ "10.0.0.1" "fdc9:281f:04d7:9ee9::1" ]; ++ privateKeyFile = "/home/user/.secrets/Wireguard/wg0.key"; ++ listenPort = 51820; ++ peers = [{ ++ publicKey = "/9ppjm3yeD0duDvxrqgcHscHmftXko+0s2RbivNEy2c="; ++ allowedIPs = [ "10.0.0.1/8" ]; ++ endpoint = "192.168.1.1:13231"; ++ }]; ++ }; ++ }; ++ fileSystems."/home/server" = { ++ device = "192.168.1.2:/home/server"; ++ fsType = "nfs"; ++ options = [ "x-systemd.automount" "noauto" ]; ++ }; ++ fileSystems."/home/user/Workspace" = { ++ device = "192.168.1.2:/home/server/Workspace"; ++ fsType = "nfs"; ++ options = [ "x-systemd.automount" "noauto" ]; ++ }; ++ fileSystems."/home/user/Documents" = { ++ device = "192.168.1.2:/home/server/Storage/Thomas/Documents"; ++ fsType = "nfs"; ++ options = [ "x-systemd.automount" "noauto" ]; ++ }; ++ fileSystems."/home/user/Pictures" = { ++ device = "192.168.1.2:/home/server/Storage/Thomas/Pictures"; ++ fsType = "nfs"; ++ options = [ "x-systemd.automount" "noauto" ]; ++ }; ++ fileSystems."/home/user/Videos" = { ++ device = "192.168.1.2:/home/server/Storage/Thomas/Videos"; ++ fsType = "nfs"; ++ options = [ "x-systemd.automount" "noauto" ]; ++ }; + } +diff --git hosts/Kell/hardware-configuration.nix hosts/Kell/hardware-configuration.nix +index 90cea7a..2d2ca47 100644 +--- hosts/Kell/hardware-configuration.nix ++++ hosts/Kell/hardware-configuration.nix +@@ -4,25 +4,24 @@ + { config, lib, pkgs, modulesPath, ... }: +  + { +- imports = +- [ (modulesPath + "/installer/scan/not-detected.nix") +- ]; ++ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; +  +- boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; ++ boot.initrd.availableKernelModules = ++ [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; +  +- fileSystems."/" = +- { device = "/dev/disk/by-uuid/feef066a-9abf-418d-a39e-603c406a72ff"; +- fsType = "ext4"; +- }; ++ fileSystems."/" = { ++ device = "/dev/disk/by-uuid/feef066a-9abf-418d-a39e-603c406a72ff"; ++ fsType = "ext4"; ++ }; +  +- fileSystems."/boot" = +- { device = "/dev/disk/by-uuid/0D9B-B227"; +- fsType = "vfat"; +- options = [ "fmask=0077" "dmask=0077" ]; +- }; ++ fileSystems."/boot" = { ++ device = "/dev/disk/by-uuid/0D9B-B227"; ++ fsType = "vfat"; ++ options = [ "fmask=0077" "dmask=0077" ]; ++ }; +  + swapDevices = [ ]; +  +@@ -35,5 +34,6 @@ + # networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true; +  + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; +- hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; ++ hardware.cpu.amd.updateMicrocode = ++ lib.mkDefault config.hardware.enableRedistributableFirmware; + } +diff --git hosts/nixos/default.nix hosts/nixos/default.nix +index 2c63c08..ffcd441 100644 +--- hosts/nixos/default.nix ++++ hosts/nixos/default.nix +@@ -1,2 +1 @@ +-{ +-} ++{ } +diff --git hosts/nixos/hardware-configuration.nix hosts/nixos/hardware-configuration.nix +index ca457b2..a88f30f 100644 +--- hosts/nixos/hardware-configuration.nix ++++ hosts/nixos/hardware-configuration.nix +@@ -4,28 +4,24 @@ + { config, lib, pkgs, modulesPath, ... }: +  + { +- imports = +- [ +- (modulesPath + "/profiles/qemu-guest.nix") +- ]; ++ imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; +  +- boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ]; ++ boot.initrd.availableKernelModules = ++ [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; +  +- fileSystems."/" = +- { +- device = "/dev/disk/by-uuid/563963bd-8e27-4c9c-a1d6-d204ea7c43ff"; +- fsType = "ext4"; +- }; ++ fileSystems."/" = { ++ device = "/dev/disk/by-uuid/563963bd-8e27-4c9c-a1d6-d204ea7c43ff"; ++ fsType = "ext4"; ++ }; +  +- fileSystems."/boot" = +- { +- device = "/dev/disk/by-uuid/9F3C-9F3B"; +- fsType = "vfat"; +- options = [ "fmask=0077" "dmask=0077" ]; +- }; ++ fileSystems."/boot" = { ++ device = "/dev/disk/by-uuid/9F3C-9F3B"; ++ fsType = "vfat"; ++ options = [ "fmask=0077" "dmask=0077" ]; ++ }; +  + swapDevices = [ ]; +  diff --git a/home/Kell.nix b/home/Kell.nix index d6205a7..6d95393 100644 --- a/home/Kell.nix +++ b/home/Kell.nix @@ -2,13 +2,13 @@ { imports = [ - (import ./common.nix { inherit inputs config pkgs; }) - (import ./hyprland { inherit inputs pkgs; }) - (import ./waybar { inherit inputs pkgs; }) - ./rofi - ./alacritty - ./firefox - ./ssh + (import ./common.nix { inherit inputs config pkgs; }) + (import ./hyprland { inherit inputs pkgs; }) + (import ./waybar { inherit inputs pkgs; }) + ./rofi + ./alacritty + ./firefox + ./ssh ]; services.hyprpaper = { settings = { @@ -21,14 +21,8 @@ }; gtk.iconTheme = { - name = "Papirus"; - gtk.iconTheme.package = pkgs.papirus-icon-theme; - }; - programs.waybar = { - settings = { - mainBar = { - output = "DP-2"; - }; - }; + name = "Papirus"; + gtk.iconTheme.package = pkgs.papirus-icon-theme; }; + programs.waybar = { settings = { mainBar = { output = "DP-2"; }; }; }; } diff --git a/home/alacritty/default.nix b/home/alacritty/default.nix index dc9799f..b8e2d40 100644 --- a/home/alacritty/default.nix +++ b/home/alacritty/default.nix @@ -77,51 +77,51 @@ action = "ReceiveChar"; } { - chars = "\u001B[72;6u"; + chars = "u001B[72;6u"; key = "H"; mods = "Control|Shift"; } { - chars = "\u001B[74;6u"; + chars = "u001B[74;6u"; key = "J"; mods = "Control|Shift"; } { - chars = "\u001B[75;6u"; + chars = "u001B[75;6u"; key = "K"; mods = "Control|Shift"; } { - chars = "\u001B[76;6u"; + chars = "u001B[76;6u"; key = "L"; mods = "Control|Shift"; } { - chars = "\u001B[105;5u"; + chars = "u001B[105;5u"; key = "I"; mods = "Control"; } { - chars = "\u001B[46;5u"; + chars = "u001B[46;5u"; key = "Period"; mods = "Control"; } { - chars = "\u001B[44;5u"; + chars = "u001B[44;5u"; key = "Comma"; mods = "Control"; } { - chars = "\u001B[59;5u"; + chars = "u001B[59;5u"; key = "Semicolon"; mods = "Control"; } { - chars = "\u001B[13;2u"; + chars = "u001B[13;2u"; key = "Return"; mods = "Shift"; } ]; - }; }; - } + }; +} diff --git a/home/common.nix b/home/common.nix index 5e568e8..93d0d6b 100644 --- a/home/common.nix +++ b/home/common.nix @@ -1,23 +1,13 @@ { inputs, config, pkgs, ... }: { - imports = [ - ./zsh - ./git - ./nvim - ./email - ./lf - ]; + imports = [ ./zsh ./git ./nvim ./email ./lf ]; home.stateVersion = "24.11"; targets.genericLinux.enable = true; nixpkgs.config.allowUnfree = true; programs.home-manager.enable = true; - home.packages = with pkgs; [ - htop - waypipe - ]; - + home.packages = with pkgs; [ htop waypipe ]; home.sessionVariables = { XDG_CONFIG_HOME = "${config.xdg.configHome}"; diff --git a/home/email/default.nix b/home/email/default.nix index caeaa36..6140376 100644 --- a/home/email/default.nix +++ b/home/email/default.nix @@ -2,26 +2,21 @@ { home.file = { - ".mailcap".text = "text/html; w3m -dump -o -document_charset=%{charset} %s; nametemplate=%s.html; copiousoutput"; + ".mailcap".text = + "text/html; w3m -dump -o -document_charset=%{charset} %s; nametemplate=%s.html; copiousoutput"; }; - home.packages = with pkgs; [ - mailcap - ]; + home.packages = with pkgs; [ mailcap ]; programs.notmuch = { enable = true; extraConfig = { - database = { - path = "/home/user/.config/aerc/mail"; - }; + database = { path = "/home/user/.config/aerc/mail"; }; user = { name = "Thomas Avé"; primary_email = "email@thomasave.be"; other_email = "Thomas.Ave@uantwerpen.be;Thomas.Ave@imec.be;"; }; - maildir = { - synchronize_flags = "true"; - }; + maildir = { synchronize_flags = "true"; }; }; }; programs.aerc = { @@ -157,9 +152,7 @@ }; }; extraConfig = { - general = { - term = "xterm-256color"; - }; + general = { term = "xterm-256color"; }; ui = { border-char-vertical = "│"; border-char-horizontal = "─"; @@ -170,12 +163,8 @@ dirlist-right = "{{if .Unread}}{{humanReadable .Unread}}{{end}}"; dirlist-tree = true; }; - viewer = { - pager = "nvim -u $XDG_CONFIG_HOME/nvim/aerc.lua"; - }; - compose = { - address-book-cmd = "notmuch address \"\%s\""; - }; + viewer = { pager = "nvim -u $XDG_CONFIG_HOME/nvim/aerc.lua"; }; + compose = { address-book-cmd = ''notmuch address "%s"''; }; multipart-converters = { "text/html" = "w3m -dump -o display_link_number=1 -T text/html"; }; @@ -185,13 +174,14 @@ "message/delivery-status" = "cat"; "message/rfc822" = "cat"; "text/html" = "w3m -dump -o display_link_number=1 -T text/html"; - "text/*" = "bat -fP --file-name=\"$AERC_FILENAME\""; + "text/*" = ''bat -fP --file-name="$AERC_FILENAME"''; "application/x-sh" = "bat -fP -l sh"; }; }; }; - home.file."${config.xdg.configHome}/aerc/map.conf".text = "Inbox=tag:inbox and not tag:archived and not tag:deleted"; + home.file."${config.xdg.configHome}/aerc/map.conf".text = + "Inbox=tag:inbox and not tag:archived and not tag:deleted"; home.file."${config.xdg.configHome}/aerc/stylesets/catppuccin-mocha".text = '' *.default=true *.normal=true diff --git a/home/firefox/default.nix b/home/firefox/default.nix index 4ba4256..72c6564 100644 --- a/home/firefox/default.nix +++ b/home/firefox/default.nix @@ -1,98 +1,106 @@ -{inputs, pkgs, ...}: +{ inputs, pkgs, ... }: let -lock-false = { + lock-false = { Value = false; Status = "locked"; -}; -lock-true = { + }; + lock-true = { Value = true; Status = "locked"; -}; -in -{ - programs.firefox = { - enable = true; - policies = { - DisableTelemetry = true; - DisableFirefoxStudies = true; - DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab" - EnableTrackingProtection = { - Value = true; - Locked = true; - Cryptomining = true; - Fingerprinting = true; - }; - ExtensionSettings = { - "{c7c120ff-2878-4e59-a5a3-cd4d1655bc13}" = { - install_url = "file://${./files/signed.xpi}"; - installation_mode = "normal_installed"; - }; - "@contain-google" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/google-container/latest.xpi"; - installation_mode = "normal_installed"; - }; - "{ea4204c0-3209-4116-afd2-2a208e21a779}" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/enable-bing-chat/latest.xpi"; - installation_mode = "normal_installed"; - }; - "{3e4d2037-d300-4e95-859d-3cba866f46d3}" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/private-internet-access-ext/latest.xpi"; - installation_mode = "normal_installed"; - }; - }; - + }; +in { + programs.firefox = { + enable = true; + policies = { + DisableTelemetry = true; + DisableFirefoxStudies = true; + DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab" + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + }; + ExtensionSettings = { + "{c7c120ff-2878-4e59-a5a3-cd4d1655bc13}" = { + install_url = "file://${./files/signed.xpi}"; + installation_mode = "normal_installed"; }; - profiles = { - default = { - id = 0; - name = "default"; - isDefault = true; - search = { - force = true; - default = "DuckDuckGo"; - order = [ "DuckDuckGo" "Google" ]; - }; - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ - ublock-origin - bitwarden - privacy-badger - beyond-20 - display-_anchors - facebook-container - multi-account-containers - istilldontcareaboutcookies - return-youtube-dislikes - sponsorblock - unpaywall - vimium - ]; - settings = { - "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.newtabpage.activity-stream.showSponsored" = lock-false; - "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; - "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; - }; - }; + "@contain-google" = { + install_url = + "https://addons.mozilla.org/firefox/downloads/latest/google-container/latest.xpi"; + installation_mode = "normal_installed"; }; - }; + "{ea4204c0-3209-4116-afd2-2a208e21a779}" = { + install_url = + "https://addons.mozilla.org/firefox/downloads/latest/enable-bing-chat/latest.xpi"; + installation_mode = "normal_installed"; + }; + "{3e4d2037-d300-4e95-859d-3cba866f46d3}" = { + install_url = + "https://addons.mozilla.org/firefox/downloads/latest/private-internet-access-ext/latest.xpi"; + installation_mode = "normal_installed"; + }; + }; - xdg.mimeApps.defaultApplications = { - "text/html" = ["firefox.desktop"]; - "text/xml" = ["firefox.desktop"]; - "x-scheme-handler/http" = ["firefox.desktop"]; - "x-scheme-handler/https" = ["firefox.desktop"]; }; + profiles = { + default = { + id = 0; + name = "default"; + isDefault = true; + search = { + force = true; + default = "DuckDuckGo"; + order = [ "DuckDuckGo" "Google" ]; + }; + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin + bitwarden + privacy-badger + beyond-20 + display-_anchors + facebook-container + multi-account-containers + istilldontcareaboutcookies + return-youtube-dislikes + sponsorblock + unpaywall + vimium + ]; + settings = { + "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.newtabpage.activity-stream.showSponsored" = lock-false; + "browser.newtabpage.activity-stream.system.showSponsored" = + lock-false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = + lock-false; + "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; + }; + }; + }; + }; + + xdg.mimeApps.defaultApplications = { + "text/html" = [ "firefox.desktop" ]; + "text/xml" = [ "firefox.desktop" ]; + "x-scheme-handler/http" = [ "firefox.desktop" ]; + "x-scheme-handler/https" = [ "firefox.desktop" ]; + }; } diff --git a/home/hyprland/default.nix b/home/hyprland/default.nix index b7b4e09..ab282dc 100644 --- a/home/hyprland/default.nix +++ b/home/hyprland/default.nix @@ -1,7 +1,4 @@ -{ inputs -, pkgs -, ... -}: +{ inputs, pkgs, ... }: let hyprland = inputs.hyprland.packages.${pkgs.system}.hyprland; playerctl = "${pkgs.playerctl}/bin/playerctl"; @@ -17,11 +14,11 @@ let rofi = "${pkgs.rofi}/bin/rofi"; jq = "${pkgs.jq}/bin/jq"; rofi-ykman = pkgs.writeShellScriptBin "rofi-ykman" '' - accounts=''$(${pkgs.yubikey-manager}/bin/ykman oath accounts list) + accounts=$(${pkgs.yubikey-manager}/bin/ykman oath accounts list) prompt="YubiKey OATH" - account=''$(echo "''${accounts/, TOTP/\n}" | awk '{ print $0 "\0icon\x1fyubioath"; }' | ${rofi} -dmenu -i -p "''$prompt" ''${shortcuts[@]}) - code=''$(${pkgs.yubikey-manager}/bin/ykman oath accounts code "''$account") - IFS=', ' read -r -a code <<< "''$code" + account=$(echo "''${accounts/, TOTP/\n}" | awk '{ print $0 "\0icon\x1fyubioath"; }' | ${rofi} -dmenu -i -p "$prompt" ''${shortcuts[@]}) + code=$(${pkgs.yubikey-manager}/bin/ykman oath accounts code "$account") + IFS=', ' read -r -a code <<< "$code" echo -n "''${code[-1]}" | ${pkgs.wl-clipboard}/bin/wl-copy; ''; @@ -60,25 +57,21 @@ let fi fi ''; -in -{ +in { services.kdeconnect = { enable = true; package = pkgs.kdePackages.kdeconnect-kde; indicator = true; }; - home.packages = with pkgs; [ - wl-clipboard - ]; + home.packages = with pkgs; [ wl-clipboard ]; services.hyprpaper = { enable = true; settings = { ipc = "on"; splash = false; - preload = - [ "${./files/wallpaper.png}" ]; + preload = [ "${./files/wallpaper.png}" ]; wallpaper = [ # Fill in by host-specific config! # "Display,${./files/wallpaper.png}" @@ -127,9 +120,7 @@ in "TERMINAL,${alacritty}" "WLR_RENDERER_ALLOW_SOFTWARE,1" ]; - debug = { - disable_logs = false; - }; + debug = { disable_logs = false; }; windowrulev2 = [ "float, title:^(rofi)(.*)$" "center, title:^(rofi)(.*)$" @@ -138,9 +129,7 @@ in "minsize 1 1, title:^()$,class:^(steam)$" "stayfocused, title:^()$,class:^(steam)$" ]; - windowrule = [ - "noanim,waybar" - ]; + windowrule = [ "noanim,waybar" ]; monitor = [ "DP-3,preferred,0x550,1" "DP-2,preferred,1920x0,1" @@ -160,20 +149,12 @@ in kb_options = "compose:rctrl, caps:super, altwin:swap_alt_win"; numlock_by_default = true; }; - binds = { - scroll_event_delay = 1; - }; - xwayland = { - force_zero_scaling = true; - }; - misc = { - disable_hyprland_logo = 1; - }; + binds = { scroll_event_delay = 1; }; + xwayland = { force_zero_scaling = true; }; + misc = { disable_hyprland_logo = 1; }; decoration = { rounding = 1; - blur = { - enabled = false; - }; + blur = { enabled = false; }; }; animations = { enabled = "yes"; @@ -216,11 +197,14 @@ in "$mainMod, F, togglefloating," "$mainMod, SPACE, togglesplit, # dwindle" "CONTROL_L ALT_L, L, exec, ${swaylock}" - "$mainMod, C, exec, cliphist list | awk '{print $0, \"\0icon\x1fcom.github.davidmhewitt.clipped\"}' | ${rofi} -dmenu -display-columns 2 | cliphist decode | wl-copy" + '' + $mainMod, C, exec, cliphist list | awk '{print $0, "0iconx1fcom.github.davidmhewitt.clipped"}' | ${rofi} -dmenu -display-columns 2 | cliphist decode | wl-copy'' "$mainMod, Y, exec, ${rofi-ykman}/bin/rofi-ykman" "$mainMod, N, exec, ${./files/rofi-ssh.sh}" - "$mainMod, Escape, exec, ${rofi} -show power-menu -modi power-menu:${./files/rofi-power-menu.sh}" + "$mainMod, Escape, exec, ${rofi} -show power-menu -modi power-menu:${ + ./files/rofi-power-menu.sh + }" ",XF86MonBrightnessUp, exec, xbacklight -inc 10" ",XF86MonBrightnessDown, exec, xbacklight -dec 10" @@ -235,7 +219,7 @@ in "$mainMod,XF86AudioMute, exec, ${playerctl} play-pause" "$mainMod,XF86AudioRaiseVolume, exec, ${playerctl} next" "$mainMod,XF86AudioLowerVolume, exec, ${playerctl} previous" - ", Print, exec, grim -g \"$(slurp -d)\" - | wl-copy" + '', Print, exec, grim -g "$(slurp -d)" - | wl-copy'' "$mainMod, H, exec, ${./files/vim-hypr-nav.sh} l" "$mainMod, L, exec, ${./files/vim-hypr-nav.sh} r" @@ -257,27 +241,16 @@ in "$mainMod, T, split-workspace, empty" "$mainMod, TAB, split-workspace, m+1" "$mainMod SHIFT, TAB, split-workspace, m-1" - ] - ++ ( + ] ++ ( # workspaces # binds $mod + [shift +] {1..10} to [move to] workspace {1..10} - builtins.concatLists (builtins.genList - ( - x: - let - ws = - let - c = (x + 1) / 10; - in - builtins.toString (x + 1 - (c * 10)); - in - [ - "$mainMod, ${ws}, split-workspace, ${toString (x + 1)}" - "$mainMod SHIFT, ${ws}, split-movetoworkspace, ${toString (x + 1)}" - ] - ) - 10) - ); + builtins.concatLists (builtins.genList (x: + let + ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10)); + in [ + "$mainMod, ${ws}, split-workspace, ${toString (x + 1)}" + "$mainMod SHIFT, ${ws}, split-movetoworkspace, ${toString (x + 1)}" + ]) 10)); }; }; } diff --git a/home/lf/default.nix b/home/lf/default.nix index 804fe46..d16c150 100644 --- a/home/lf/default.nix +++ b/home/lf/default.nix @@ -19,8 +19,8 @@ "" = "quit"; "" = "half-up"; "." = "set hidden!"; - "o" = "$nvim -c \"lua require(\\\"oil\\\").open(\\\"$PWD\\\")\""; - "-" = "$nvim -c \"lua require(\\\"oil\\\").open(\\\"$PWD\\\")\""; + "o" = ''$nvim -c "lua require(\"oil\").open(\"$PWD\")"''; + "-" = ''$nvim -c "lua require(\"oil\").open(\"$PWD\")"''; "" = "open"; "" = ":jump "; }; @@ -32,8 +32,6 @@ }} ''; }; - cmdKeybindings = { - q = "quit"; - }; + cmdKeybindings = { q = "quit"; }; }; } diff --git a/home/nixos.nix b/home/nixos.nix index ee6fc52..bfb8d58 100644 --- a/home/nixos.nix +++ b/home/nixos.nix @@ -2,25 +2,17 @@ { imports = [ - (import ./common.nix { inherit inputs config pkgs; }) - (import ./hyprland { inherit inputs pkgs; }) - (import ./waybar { inherit inputs pkgs; }) - ./rofi + (import ./common.nix { inherit inputs config pkgs; }) + (import ./hyprland { inherit inputs pkgs; }) + (import ./waybar { inherit inputs pkgs; }) + ./rofi ]; services.hyprpaper = { settings = { - wallpaper = [ - "Virtual-1,${./hyprland/files/wallpaper.png}" - ]; + wallpaper = [ "Virtual-1,${./hyprland/files/wallpaper.png}" ]; }; }; - programs.waybar = { - settings = { - mainBar = { - output = "Virtual-1"; - }; - }; - }; + programs.waybar = { settings = { mainBar = { output = "Virtual-1"; }; }; }; } diff --git a/home/rofi/default.nix b/home/rofi/default.nix index dd65147..a5931ab 100644 --- a/home/rofi/default.nix +++ b/home/rofi/default.nix @@ -1,9 +1,7 @@ { config, pkgs, ... }: { - home.packages = with pkgs; [ - papirus-icon-theme - ]; + home.packages = with pkgs; [ papirus-icon-theme ]; programs.rofi = { enable = true; @@ -14,120 +12,115 @@ kb-cancel = "Super_L+XF86Launch5,Escape"; combi-hide-mode-prefix = true; }; - theme = - let - inherit (config.lib.formats.rasi) mkLiteral; - in - { - "*" = { - background = mkLiteral "#0f111a"; - foreground = mkLiteral "#f1f1f1"; - selected = mkLiteral "#0033a1"; - selected-text = mkLiteral "#ffffff"; - }; - - "window" = { - transparency = "real"; - background-color = mkLiteral "@background"; - text-color = mkLiteral "@foreground"; - width = mkLiteral "800px"; - border-radius = mkLiteral "5px"; - }; - - "textbox-prompt-colon" = { - expand = mkLiteral "false"; - background-color = mkLiteral "@background"; - padding = mkLiteral "4px 0px 0px 6px"; - }; - - "inputbar" = { - children = mkLiteral "[ textbox-prompt-colon, entry ]"; - background-color = mkLiteral "@background"; - text-color = mkLiteral "@foreground"; - expand = mkLiteral "false"; - border = mkLiteral "0px 0px 0px 0px"; - border-radius = mkLiteral "0px"; - border-color = mkLiteral "@selected"; - margin = mkLiteral "0px 0px 0px 0px"; - padding = mkLiteral "0px 0px 4px 0px"; - position = mkLiteral "center"; - }; - - "entry" = { - background-color = mkLiteral "@background"; - text-color = mkLiteral "@foreground"; - placeholder-color = mkLiteral "@foreground"; - expand = mkLiteral "true"; - horizontal-align = mkLiteral "0"; - blink = mkLiteral "true"; - padding = mkLiteral "4px 0px 0px 4px"; - font = "SF Pro Rounded 25"; - }; - - "case-indicator" = { - background-color = mkLiteral "@background"; - text-color = mkLiteral "@foreground"; - spacing = mkLiteral "0"; - }; - - "listview" = { - background-color = mkLiteral "@background"; - columns = mkLiteral "1"; - spacing = mkLiteral "5px"; - cycle = mkLiteral "true"; - dynamic = mkLiteral "true"; - layout = mkLiteral "vertical"; - fixed-height = "true"; - lines = mkLiteral "5"; - }; - - "mainbox" = { - background-color = mkLiteral "@background"; - children = mkLiteral "[ inputbar, message, listview ]"; - spacing = mkLiteral "20px"; - padding = mkLiteral "20px 15px 15px 15px"; - }; - - "message" = { - children = mkLiteral "[ textbox ]"; - border-radius = mkLiteral "5px"; - }; - - "textbox" = { - background-color = mkLiteral "@selected"; - text-color = mkLiteral "@foreground"; - padding = mkLiteral "20px 6px 20px 80px"; - }; - - "element" = { - background-color = mkLiteral "@background"; - text-color = mkLiteral "@foreground"; - orientation = mkLiteral "horizontal"; - border-radius = mkLiteral "4px"; - padding = mkLiteral "2px 2px 2px 2px"; - }; - - "element-text, element-icon" = { - background-color = mkLiteral "inherit"; - text-color = mkLiteral "inherit"; - }; - - "element-icon" = { - size = mkLiteral "40px"; - border = mkLiteral "10px"; - }; - - "element-text" = { - padding = mkLiteral "20px 0px 0px 10px"; - }; - - "element selected" = { - background-color = mkLiteral "@selected"; - text-color = mkLiteral "@selected-text"; - border = mkLiteral "0px"; - border-radius = mkLiteral "3px"; - border-color = mkLiteral "@selected"; - }; + theme = let inherit (config.lib.formats.rasi) mkLiteral; + in { + "*" = { + background = mkLiteral "#0f111a"; + foreground = mkLiteral "#f1f1f1"; + selected = mkLiteral "#0033a1"; + selected-text = mkLiteral "#ffffff"; }; + + "window" = { + transparency = "real"; + background-color = mkLiteral "@background"; + text-color = mkLiteral "@foreground"; + width = mkLiteral "800px"; + border-radius = mkLiteral "5px"; + }; + + "textbox-prompt-colon" = { + expand = mkLiteral "false"; + background-color = mkLiteral "@background"; + padding = mkLiteral "4px 0px 0px 6px"; + }; + + "inputbar" = { + children = mkLiteral "[ textbox-prompt-colon, entry ]"; + background-color = mkLiteral "@background"; + text-color = mkLiteral "@foreground"; + expand = mkLiteral "false"; + border = mkLiteral "0px 0px 0px 0px"; + border-radius = mkLiteral "0px"; + border-color = mkLiteral "@selected"; + margin = mkLiteral "0px 0px 0px 0px"; + padding = mkLiteral "0px 0px 4px 0px"; + position = mkLiteral "center"; + }; + + "entry" = { + background-color = mkLiteral "@background"; + text-color = mkLiteral "@foreground"; + placeholder-color = mkLiteral "@foreground"; + expand = mkLiteral "true"; + horizontal-align = mkLiteral "0"; + blink = mkLiteral "true"; + padding = mkLiteral "4px 0px 0px 4px"; + font = "SF Pro Rounded 25"; + }; + + "case-indicator" = { + background-color = mkLiteral "@background"; + text-color = mkLiteral "@foreground"; + spacing = mkLiteral "0"; + }; + + "listview" = { + background-color = mkLiteral "@background"; + columns = mkLiteral "1"; + spacing = mkLiteral "5px"; + cycle = mkLiteral "true"; + dynamic = mkLiteral "true"; + layout = mkLiteral "vertical"; + fixed-height = "true"; + lines = mkLiteral "5"; + }; + + "mainbox" = { + background-color = mkLiteral "@background"; + children = mkLiteral "[ inputbar, message, listview ]"; + spacing = mkLiteral "20px"; + padding = mkLiteral "20px 15px 15px 15px"; + }; + + "message" = { + children = mkLiteral "[ textbox ]"; + border-radius = mkLiteral "5px"; + }; + + "textbox" = { + background-color = mkLiteral "@selected"; + text-color = mkLiteral "@foreground"; + padding = mkLiteral "20px 6px 20px 80px"; + }; + + "element" = { + background-color = mkLiteral "@background"; + text-color = mkLiteral "@foreground"; + orientation = mkLiteral "horizontal"; + border-radius = mkLiteral "4px"; + padding = mkLiteral "2px 2px 2px 2px"; + }; + + "element-text, element-icon" = { + background-color = mkLiteral "inherit"; + text-color = mkLiteral "inherit"; + }; + + "element-icon" = { + size = mkLiteral "40px"; + border = mkLiteral "10px"; + }; + + "element-text" = { padding = mkLiteral "20px 0px 0px 10px"; }; + + "element selected" = { + background-color = mkLiteral "@selected"; + text-color = mkLiteral "@selected-text"; + border = mkLiteral "0px"; + border-radius = mkLiteral "3px"; + border-color = mkLiteral "@selected"; + }; + }; }; } diff --git a/home/ssh/default.nix b/home/ssh/default.nix index 4b8ebfb..4b800d1 100644 --- a/home/ssh/default.nix +++ b/home/ssh/default.nix @@ -1,66 +1,66 @@ { inputs, config, pkgs, ... }: { - programs.ssh = { - enable = true; - includes = ["gpulab_hosts_config"]; - matchBlocks = { - mallorea = { - host = "mallorea"; - hostname = "server.thomasave.be"; - port = 22; - user = "server"; - forwardAgent = true; - }; - Mallorea = { - host = "Mallorea"; - hostname = "server.thomasave.be"; - port = 22; - user = "server"; - forwardAgent = true; - }; - Kell = { - host = "Kell"; - hostname = "kell.thomasave.be"; - port = 22; - user = "user"; - forwardAgent = true; - }; - kell = { - host = "kell"; - hostname = "kell.thomasave.be"; - port = 22; - user = "user"; - forwardAgent = true; - }; - Riva = { - host = "Riva"; - hostname = "riva.thomasave.be"; - port = 22; - user = "user"; - forwardAgent = true; - }; - riva = { - host = "riva"; - hostname = "riva.thomasave.be"; - port = 22; - user = "user"; - forwardAgent = true; - }; - Vault = { - host = "Vault"; - hostname = "etienne.thomasave.be"; - port = 22; - user = "server"; - forwardAgent = true; - }; - vault = { - host = "vault"; - hostname = "etienne.thomasave.be"; - port = 22; - user = "server"; - forwardAgent = true; - }; - }; + programs.ssh = { + enable = true; + includes = [ "gpulab_hosts_config" ]; + matchBlocks = { + mallorea = { + host = "mallorea"; + hostname = "server.thomasave.be"; + port = 22; + user = "server"; + forwardAgent = true; + }; + Mallorea = { + host = "Mallorea"; + hostname = "server.thomasave.be"; + port = 22; + user = "server"; + forwardAgent = true; + }; + Kell = { + host = "Kell"; + hostname = "kell.thomasave.be"; + port = 22; + user = "user"; + forwardAgent = true; + }; + kell = { + host = "kell"; + hostname = "kell.thomasave.be"; + port = 22; + user = "user"; + forwardAgent = true; + }; + Riva = { + host = "Riva"; + hostname = "riva.thomasave.be"; + port = 22; + user = "user"; + forwardAgent = true; + }; + riva = { + host = "riva"; + hostname = "riva.thomasave.be"; + port = 22; + user = "user"; + forwardAgent = true; + }; + Vault = { + host = "Vault"; + hostname = "etienne.thomasave.be"; + port = 22; + user = "server"; + forwardAgent = true; + }; + vault = { + host = "vault"; + hostname = "etienne.thomasave.be"; + port = 22; + user = "server"; + forwardAgent = true; + }; }; + }; } diff --git a/home/waybar/default.nix b/home/waybar/default.nix index e509df7..fa1b436 100644 --- a/home/waybar/default.nix +++ b/home/waybar/default.nix @@ -1,7 +1,4 @@ -{ inputs -, pkgs -, ... -}: +{ inputs, pkgs, ... }: { programs.waybar = { @@ -15,7 +12,18 @@ # output = "DP-2"; # Fill in with host-specific config! modules-left = [ "wlr/taskbar" ]; modules-center = [ "hyprland/workspaces" ]; - modules-right = [ "tray" "wireplumber" "cpu#cpu2" "cpu" "memory" "custom/updates" "temperature" "battery" "clock" "clock#clock2" ]; + modules-right = [ + "tray" + "wireplumber" + "cpu#cpu2" + "cpu" + "memory" + "custom/updates" + "temperature" + "battery" + "clock" + "clock#clock2" + ]; "wlr/taskbar" = { on-click = "activate"; on-click-right = "close"; @@ -34,12 +42,8 @@ warp-on-scroll = false; format = "{name}"; }; - "hyprland/window" = { - max-length = 50; - }; - tray = { - spacing = 10; - }; + "hyprland/window" = { max-length = 50; }; + tray = { spacing = 10; }; "clock#clock2" = { timezone = "Europe/Brussels"; format = "{:%H:%M:%S}"; @@ -61,8 +65,10 @@ interval = 5; }; "custom/updates" = { - exec = "bash -c \"checkupdates | wc -l\""; - on-click = "alacritty -e bash -c \"yay ; echo '\nDone, press any key to exit...' ; read\""; + exec = ''bash -c "checkupdates | wc -l"''; + on-click = '' + alacritty -e bash -c "yay ; echo ' + Done, press any key to exit...' ; read"''; interval = 60; format = "{}  "; }; diff --git a/home/zsh/default.nix b/home/zsh/default.nix index d910b27..419344e 100644 --- a/home/zsh/default.nix +++ b/home/zsh/default.nix @@ -17,7 +17,8 @@ BROWSER = "firefox"; GPULAB_CERT = "${config.xdg.dataHome}/gpulab.pem"; GPULAB_DEV = "False"; - GCC_COLORS = "error = '01;31:warning = '01;35:note = '01;36:caret = '01;32:locus = '01:quote = '01'"; + GCC_COLORS = + "error = '01;31:warning = '01;35:note = '01;36:caret = '01;32:locus = '01:quote = '01'"; ARCHFLAGS = "-arch x86_64"; TERM = "screen-256color"; PYTHONDONTWRITEBYTECODE = "1"; @@ -28,9 +29,7 @@ enable = true; enableZshIntegration = true; }; - programs.fzf = { - enable = true; - }; + programs.fzf = { enable = true; }; programs.zsh = { enable = true; enableCompletion = true; @@ -62,17 +61,22 @@ ll = "ls -lhat"; ls = "ls --color=auto"; - lf = "cd \"\$(${pkgs.lf}/bin/lf -print-last-dir)\""; + lf = ''cd "$(${pkgs.lf}/bin/lf -print-last-dir)"''; compress = "tar --use-compress-program = lbzip2 -cvf"; - wget = "wget --hsts-file = \"$XDG_DATA_HOME/wget-hsts\""; + wget = ''wget --hsts-file = "$XDG_DATA_HOME/wget-hsts"''; python = "python3"; - v = "nvim -c ':lua require(\"oil\").open()' && cd \"\$(cat /tmp/oil_dir 2> /dev/null || pwd)\""; - cpr = "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1"; - mvr = "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1 --remove-source-files"; - rg = "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'"; - ag = "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'"; - push = "git add -A && git commit -m \"`date`\" && git push"; + v = '' + nvim -c ':lua require("oil").open()' && cd "$(cat /tmp/oil_dir 2> /dev/null || pwd)"''; + cpr = + "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1"; + mvr = + "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1 --remove-source-files"; + rg = + "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'"; + ag = + "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'"; + push = ''git add -A && git commit -m "`date`" && git push''; reset = "tput reset"; }; history.size = 10000000; diff --git a/hosts/Kell/default.nix b/hosts/Kell/default.nix index 3ff7f53..a4bcf8d 100644 --- a/hosts/Kell/default.nix +++ b/hosts/Kell/default.nix @@ -1,64 +1,59 @@ -{inputs, pkgs, ...}: +{ inputs, pkgs, ... }: { services.pcscd.enable = true; services.udev.packages = [ pkgs.yubikey-personalization ]; - services.logind.extraConfig = '' + services.logind.extraConfig = '' # don’t shutdown when power button is short-pressed HandlePowerKey=suspend ''; + # Calendar + programs.dconf.enable = true; + services.gnome.evolution-data-server.enable = true; + services.gnome.gnome-online-accounts.enable = true; + services.gnome.gnome-keyring.enable = true; + environment.systemPackages = with pkgs; [ wireguard-tools ]; + # Add the server using gnome-online-accounts: + # nix-shell -p gnome.gnome-control-center --run "gnome-control-center" + # Just add the main webdav server and gnome-calendar will automatically pick up all available calendars. - # Calendar - programs.dconf.enable = true; - services.gnome.evolution-data-server.enable = true; - services.gnome.gnome-online-accounts.enable = true; - services.gnome.gnome-keyring.enable = true; - environment.systemPackages = with pkgs; [ - wireguard-tools - ]; - # Add the server using gnome-online-accounts: - # nix-shell -p gnome.gnome-control-center --run "gnome-control-center" - # Just add the main webdav server and gnome-calendar will automatically pick up all available calendars. - - networking.wg-quick.interfaces = { - wg0 = { - address = [ "10.0.0.10/24" " 2a02:a03f:83ad:2101::2/128" ]; - dns = [ "10.0.0.1" "fdc9:281f:04d7:9ee9::1" ]; - privateKeyFile = "/home/user/.secrets/Wireguard/wg0.key"; - listenPort = 51820; - peers = [ - { - publicKey = "/9ppjm3yeD0duDvxrqgcHscHmftXko+0s2RbivNEy2c="; - allowedIPs = [ "10.0.0.1/8" ]; - endpoint = "192.168.1.1:13231"; - } - ]; - }; - }; - fileSystems."/home/server" = { - device = "192.168.1.2:/home/server"; - fsType = "nfs"; - options = [ "x-systemd.automount" "noauto" ]; - }; - fileSystems."/home/user/Workspace" = { - device = "192.168.1.2:/home/server/Workspace"; - fsType = "nfs"; - options = [ "x-systemd.automount" "noauto" ]; - }; - fileSystems."/home/user/Documents" = { - device = "192.168.1.2:/home/server/Storage/Thomas/Documents"; - fsType = "nfs"; - options = [ "x-systemd.automount" "noauto" ]; - }; - fileSystems."/home/user/Pictures" = { - device = "192.168.1.2:/home/server/Storage/Thomas/Pictures"; - fsType = "nfs"; - options = [ "x-systemd.automount" "noauto" ]; - }; - fileSystems."/home/user/Videos" = { - device = "192.168.1.2:/home/server/Storage/Thomas/Videos"; - fsType = "nfs"; - options = [ "x-systemd.automount" "noauto" ]; - }; + networking.wg-quick.interfaces = { + wg0 = { + address = [ "10.0.0.10/24" " 2a02:a03f:83ad:2101::2/128" ]; + dns = [ "10.0.0.1" "fdc9:281f:04d7:9ee9::1" ]; + privateKeyFile = "/home/user/.secrets/Wireguard/wg0.key"; + listenPort = 51820; + peers = [{ + publicKey = "/9ppjm3yeD0duDvxrqgcHscHmftXko+0s2RbivNEy2c="; + allowedIPs = [ "10.0.0.1/8" ]; + endpoint = "192.168.1.1:13231"; + }]; + }; + }; + fileSystems."/home/server" = { + device = "192.168.1.2:/home/server"; + fsType = "nfs"; + options = [ "x-systemd.automount" "noauto" ]; + }; + fileSystems."/home/user/Workspace" = { + device = "192.168.1.2:/home/server/Workspace"; + fsType = "nfs"; + options = [ "x-systemd.automount" "noauto" ]; + }; + fileSystems."/home/user/Documents" = { + device = "192.168.1.2:/home/server/Storage/Thomas/Documents"; + fsType = "nfs"; + options = [ "x-systemd.automount" "noauto" ]; + }; + fileSystems."/home/user/Pictures" = { + device = "192.168.1.2:/home/server/Storage/Thomas/Pictures"; + fsType = "nfs"; + options = [ "x-systemd.automount" "noauto" ]; + }; + fileSystems."/home/user/Videos" = { + device = "192.168.1.2:/home/server/Storage/Thomas/Videos"; + fsType = "nfs"; + options = [ "x-systemd.automount" "noauto" ]; + }; } diff --git a/hosts/Kell/hardware-configuration.nix b/hosts/Kell/hardware-configuration.nix index 90cea7a..2d2ca47 100644 --- a/hosts/Kell/hardware-configuration.nix +++ b/hosts/Kell/hardware-configuration.nix @@ -4,25 +4,24 @@ { config, lib, pkgs, modulesPath, ... }: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.availableKernelModules = + [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "/dev/disk/by-uuid/feef066a-9abf-418d-a39e-603c406a72ff"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/feef066a-9abf-418d-a39e-603c406a72ff"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/0D9B-B227"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/0D9B-B227"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; swapDevices = [ ]; @@ -35,5 +34,6 @@ # networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.amd.updateMicrocode = + lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hosts/nixos/default.nix b/hosts/nixos/default.nix index 2c63c08..ffcd441 100644 --- a/hosts/nixos/default.nix +++ b/hosts/nixos/default.nix @@ -1,2 +1 @@ -{ -} +{ } diff --git a/hosts/nixos/hardware-configuration.nix b/hosts/nixos/hardware-configuration.nix index ca457b2..a88f30f 100644 --- a/hosts/nixos/hardware-configuration.nix +++ b/hosts/nixos/hardware-configuration.nix @@ -4,28 +4,24 @@ { config, lib, pkgs, modulesPath, ... }: { - imports = - [ - (modulesPath + "/profiles/qemu-guest.nix") - ]; + imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; - boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ]; + boot.initrd.availableKernelModules = + [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { - device = "/dev/disk/by-uuid/563963bd-8e27-4c9c-a1d6-d204ea7c43ff"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/563963bd-8e27-4c9c-a1d6-d204ea7c43ff"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { - device = "/dev/disk/by-uuid/9F3C-9F3B"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/9F3C-9F3B"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; swapDevices = [ ];