Mon Jun 3 04:02:50 PM CEST 2024

This commit is contained in:
Thomas Avé 2024-06-03 16:02:50 +02:00
parent 441d5bfa22
commit a8d4ffd131
18 changed files with 1958 additions and 551 deletions

View File

@ -22,13 +22,7 @@
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
}; };
outputs = outputs = { self, nixpkgs, home-manager, nur, ... }@inputs:
{ self
, nixpkgs
, home-manager
, nur
, ...
}@inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
@ -48,7 +42,9 @@
nix.settings = { nix.settings = {
substituters = [ "https://hyprland.cachix.org" ]; 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" ]; experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true; auto-optimise-store = true;
}; };
@ -99,12 +95,7 @@
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
environment.systemPackages = with pkgs; [ wget curl git ];
environment.systemPackages = with pkgs; [
wget
curl
git
];
services.openssh = { services.openssh = {
enable = true; enable = true;
@ -116,7 +107,8 @@
networking.firewall.enable = false; networking.firewall.enable = false;
system.stateVersion = "23.11"; 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; [ fonts.packages = with pkgs; [
noto-fonts noto-fonts
@ -130,31 +122,25 @@
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
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; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
users.${user} = { users.${user} = { imports = [ ./home/${host}.nix ]; };
imports = [ ./home/${host}.nix ];
};
}; };
} }
./hosts/${host} ./hosts/${host}
]; ];
mkSystem = host: cfg: nixpkgs.lib.nixosSystem { mkSystem = host: cfg:
nixpkgs.lib.nixosSystem {
system = cfg.system or "x86_64-linux"; system = cfg.system or "x86_64-linux";
modules = (commonModules host cfg.user) ++ (cfg.modules or [ ]); modules = (commonModules host cfg.user) ++ (cfg.modules or [ ]);
specialArgs = inputs; specialArgs = inputs;
}; };
systems = { systems = {
nixos = { nixos = { user = "user"; };
user = "user"; Kell = { user = "user"; };
};
Kell = {
user = "user";
};
};
in
{
nixosConfigurations = nixpkgs.lib.mapAttrs mkSystem systems;
}; };
in { nixosConfigurations = nixpkgs.lib.mapAttrs mkSystem systems; };
} }

1483
h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -24,11 +24,5 @@
name = "Papirus"; name = "Papirus";
gtk.iconTheme.package = pkgs.papirus-icon-theme; gtk.iconTheme.package = pkgs.papirus-icon-theme;
}; };
programs.waybar = { programs.waybar = { settings = { mainBar = { output = "DP-2"; }; }; };
settings = {
mainBar = {
output = "DP-2";
};
};
};
} }

View File

@ -77,51 +77,51 @@
action = "ReceiveChar"; action = "ReceiveChar";
} }
{ {
chars = "\u001B[72;6u"; chars = "u001B[72;6u";
key = "H"; key = "H";
mods = "Control|Shift"; mods = "Control|Shift";
} }
{ {
chars = "\u001B[74;6u"; chars = "u001B[74;6u";
key = "J"; key = "J";
mods = "Control|Shift"; mods = "Control|Shift";
} }
{ {
chars = "\u001B[75;6u"; chars = "u001B[75;6u";
key = "K"; key = "K";
mods = "Control|Shift"; mods = "Control|Shift";
} }
{ {
chars = "\u001B[76;6u"; chars = "u001B[76;6u";
key = "L"; key = "L";
mods = "Control|Shift"; mods = "Control|Shift";
} }
{ {
chars = "\u001B[105;5u"; chars = "u001B[105;5u";
key = "I"; key = "I";
mods = "Control"; mods = "Control";
} }
{ {
chars = "\u001B[46;5u"; chars = "u001B[46;5u";
key = "Period"; key = "Period";
mods = "Control"; mods = "Control";
} }
{ {
chars = "\u001B[44;5u"; chars = "u001B[44;5u";
key = "Comma"; key = "Comma";
mods = "Control"; mods = "Control";
} }
{ {
chars = "\u001B[59;5u"; chars = "u001B[59;5u";
key = "Semicolon"; key = "Semicolon";
mods = "Control"; mods = "Control";
} }
{ {
chars = "\u001B[13;2u"; chars = "u001B[13;2u";
key = "Return"; key = "Return";
mods = "Shift"; mods = "Shift";
} }
]; ];
}; };
}; };
} }

View File

@ -1,23 +1,13 @@
{ inputs, config, pkgs, ... }: { inputs, config, pkgs, ... }:
{ {
imports = [ imports = [ ./zsh ./git ./nvim ./email ./lf ];
./zsh
./git
./nvim
./email
./lf
];
home.stateVersion = "24.11"; home.stateVersion = "24.11";
targets.genericLinux.enable = true; targets.genericLinux.enable = true;
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
programs.home-manager.enable = true; programs.home-manager.enable = true;
home.packages = with pkgs; [ home.packages = with pkgs; [ htop waypipe ];
htop
waypipe
];
home.sessionVariables = { home.sessionVariables = {
XDG_CONFIG_HOME = "${config.xdg.configHome}"; XDG_CONFIG_HOME = "${config.xdg.configHome}";

View File

@ -2,26 +2,21 @@
{ {
home.file = { 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; [ home.packages = with pkgs; [ mailcap ];
mailcap
];
programs.notmuch = { programs.notmuch = {
enable = true; enable = true;
extraConfig = { extraConfig = {
database = { database = { path = "/home/user/.config/aerc/mail"; };
path = "/home/user/.config/aerc/mail";
};
user = { user = {
name = "Thomas Avé"; name = "Thomas Avé";
primary_email = "email@thomasave.be"; primary_email = "email@thomasave.be";
other_email = "Thomas.Ave@uantwerpen.be;Thomas.Ave@imec.be;"; other_email = "Thomas.Ave@uantwerpen.be;Thomas.Ave@imec.be;";
}; };
maildir = { maildir = { synchronize_flags = "true"; };
synchronize_flags = "true";
};
}; };
}; };
programs.aerc = { programs.aerc = {
@ -157,9 +152,7 @@
}; };
}; };
extraConfig = { extraConfig = {
general = { general = { term = "xterm-256color"; };
term = "xterm-256color";
};
ui = { ui = {
border-char-vertical = ""; border-char-vertical = "";
border-char-horizontal = ""; border-char-horizontal = "";
@ -170,12 +163,8 @@
dirlist-right = "{{if .Unread}}{{humanReadable .Unread}}{{end}}"; dirlist-right = "{{if .Unread}}{{humanReadable .Unread}}{{end}}";
dirlist-tree = true; dirlist-tree = true;
}; };
viewer = { viewer = { pager = "nvim -u $XDG_CONFIG_HOME/nvim/aerc.lua"; };
pager = "nvim -u $XDG_CONFIG_HOME/nvim/aerc.lua"; compose = { address-book-cmd = ''notmuch address "%s"''; };
};
compose = {
address-book-cmd = "notmuch address \"\%s\"";
};
multipart-converters = { multipart-converters = {
"text/html" = "w3m -dump -o display_link_number=1 -T text/html"; "text/html" = "w3m -dump -o display_link_number=1 -T text/html";
}; };
@ -185,13 +174,14 @@
"message/delivery-status" = "cat"; "message/delivery-status" = "cat";
"message/rfc822" = "cat"; "message/rfc822" = "cat";
"text/html" = "w3m -dump -o display_link_number=1 -T text/html"; "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"; "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 = '' home.file."${config.xdg.configHome}/aerc/stylesets/catppuccin-mocha".text = ''
*.default=true *.default=true
*.normal=true *.normal=true

View File

@ -1,15 +1,14 @@
{inputs, pkgs, ...}: { inputs, pkgs, ... }:
let let
lock-false = { lock-false = {
Value = false; Value = false;
Status = "locked"; Status = "locked";
}; };
lock-true = { lock-true = {
Value = true; Value = true;
Status = "locked"; Status = "locked";
}; };
in in {
{
programs.firefox = { programs.firefox = {
enable = true; enable = true;
policies = { policies = {
@ -28,15 +27,18 @@ in
installation_mode = "normal_installed"; installation_mode = "normal_installed";
}; };
"@contain-google" = { "@contain-google" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/google-container/latest.xpi"; install_url =
"https://addons.mozilla.org/firefox/downloads/latest/google-container/latest.xpi";
installation_mode = "normal_installed"; installation_mode = "normal_installed";
}; };
"{ea4204c0-3209-4116-afd2-2a208e21a779}" = { "{ea4204c0-3209-4116-afd2-2a208e21a779}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/enable-bing-chat/latest.xpi"; install_url =
"https://addons.mozilla.org/firefox/downloads/latest/enable-bing-chat/latest.xpi";
installation_mode = "normal_installed"; installation_mode = "normal_installed";
}; };
"{3e4d2037-d300-4e95-859d-3cba866f46d3}" = { "{3e4d2037-d300-4e95-859d-3cba866f46d3}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/private-internet-access-ext/latest.xpi"; install_url =
"https://addons.mozilla.org/firefox/downloads/latest/private-internet-access-ext/latest.xpi";
installation_mode = "normal_installed"; installation_mode = "normal_installed";
}; };
}; };
@ -79,10 +81,16 @@ in
"extensions.pocket.enabled" = lock-false; "extensions.pocket.enabled" = lock-false;
"extensions.autoDisableScopes" = 0; "extensions.autoDisableScopes" = 0;
"browser.newtabpage.activity-stream.showSponsored" = lock-false; "browser.newtabpage.activity-stream.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false; "browser.newtabpage.activity-stream.system.showSponsored" =
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; lock-false;
"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; }; "browser.newtabpage.activity-stream.showSponsoredTopSites" =
"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}''; 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; "privacy.trackingprotection.enabled" = true;
}; };
}; };
@ -90,9 +98,9 @@ in
}; };
xdg.mimeApps.defaultApplications = { xdg.mimeApps.defaultApplications = {
"text/html" = ["firefox.desktop"]; "text/html" = [ "firefox.desktop" ];
"text/xml" = ["firefox.desktop"]; "text/xml" = [ "firefox.desktop" ];
"x-scheme-handler/http" = ["firefox.desktop"]; "x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = ["firefox.desktop"]; "x-scheme-handler/https" = [ "firefox.desktop" ];
}; };
} }

View File

@ -1,7 +1,4 @@
{ inputs { inputs, pkgs, ... }:
, pkgs
, ...
}:
let let
hyprland = inputs.hyprland.packages.${pkgs.system}.hyprland; hyprland = inputs.hyprland.packages.${pkgs.system}.hyprland;
playerctl = "${pkgs.playerctl}/bin/playerctl"; playerctl = "${pkgs.playerctl}/bin/playerctl";
@ -17,11 +14,11 @@ let
rofi = "${pkgs.rofi}/bin/rofi"; rofi = "${pkgs.rofi}/bin/rofi";
jq = "${pkgs.jq}/bin/jq"; jq = "${pkgs.jq}/bin/jq";
rofi-ykman = pkgs.writeShellScriptBin "rofi-ykman" '' 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" prompt="YubiKey OATH"
account=''$(echo "''${accounts/, TOTP/\n}" | awk '{ print $0 "\0icon\x1fyubioath"; }' | ${rofi} -dmenu -i -p "''$prompt" ''${shortcuts[@]}) 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") code=$(${pkgs.yubikey-manager}/bin/ykman oath accounts code "$account")
IFS=', ' read -r -a code <<< "''$code" IFS=', ' read -r -a code <<< "$code"
echo -n "''${code[-1]}" | ${pkgs.wl-clipboard}/bin/wl-copy; echo -n "''${code[-1]}" | ${pkgs.wl-clipboard}/bin/wl-copy;
''; '';
@ -60,25 +57,21 @@ let
fi fi
fi fi
''; '';
in in {
{
services.kdeconnect = { services.kdeconnect = {
enable = true; enable = true;
package = pkgs.kdePackages.kdeconnect-kde; package = pkgs.kdePackages.kdeconnect-kde;
indicator = true; indicator = true;
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [ wl-clipboard ];
wl-clipboard
];
services.hyprpaper = { services.hyprpaper = {
enable = true; enable = true;
settings = { settings = {
ipc = "on"; ipc = "on";
splash = false; splash = false;
preload = preload = [ "${./files/wallpaper.png}" ];
[ "${./files/wallpaper.png}" ];
wallpaper = [ wallpaper = [
# Fill in by host-specific config! # Fill in by host-specific config!
# "Display,${./files/wallpaper.png}" # "Display,${./files/wallpaper.png}"
@ -127,9 +120,7 @@ in
"TERMINAL,${alacritty}" "TERMINAL,${alacritty}"
"WLR_RENDERER_ALLOW_SOFTWARE,1" "WLR_RENDERER_ALLOW_SOFTWARE,1"
]; ];
debug = { debug = { disable_logs = false; };
disable_logs = false;
};
windowrulev2 = [ windowrulev2 = [
"float, title:^(rofi)(.*)$" "float, title:^(rofi)(.*)$"
"center, title:^(rofi)(.*)$" "center, title:^(rofi)(.*)$"
@ -138,9 +129,7 @@ in
"minsize 1 1, title:^()$,class:^(steam)$" "minsize 1 1, title:^()$,class:^(steam)$"
"stayfocused, title:^()$,class:^(steam)$" "stayfocused, title:^()$,class:^(steam)$"
]; ];
windowrule = [ windowrule = [ "noanim,waybar" ];
"noanim,waybar"
];
monitor = [ monitor = [
"DP-3,preferred,0x550,1" "DP-3,preferred,0x550,1"
"DP-2,preferred,1920x0,1" "DP-2,preferred,1920x0,1"
@ -160,20 +149,12 @@ in
kb_options = "compose:rctrl, caps:super, altwin:swap_alt_win"; kb_options = "compose:rctrl, caps:super, altwin:swap_alt_win";
numlock_by_default = true; numlock_by_default = true;
}; };
binds = { binds = { scroll_event_delay = 1; };
scroll_event_delay = 1; xwayland = { force_zero_scaling = true; };
}; misc = { disable_hyprland_logo = 1; };
xwayland = {
force_zero_scaling = true;
};
misc = {
disable_hyprland_logo = 1;
};
decoration = { decoration = {
rounding = 1; rounding = 1;
blur = { blur = { enabled = false; };
enabled = false;
};
}; };
animations = { animations = {
enabled = "yes"; enabled = "yes";
@ -216,11 +197,14 @@ in
"$mainMod, F, togglefloating," "$mainMod, F, togglefloating,"
"$mainMod, SPACE, togglesplit, # dwindle" "$mainMod, SPACE, togglesplit, # dwindle"
"CONTROL_L ALT_L, L, exec, ${swaylock}" "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, Y, exec, ${rofi-ykman}/bin/rofi-ykman"
"$mainMod, N, exec, ${./files/rofi-ssh.sh}" "$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" ",XF86MonBrightnessUp, exec, xbacklight -inc 10"
",XF86MonBrightnessDown, exec, xbacklight -dec 10" ",XF86MonBrightnessDown, exec, xbacklight -dec 10"
@ -235,7 +219,7 @@ in
"$mainMod,XF86AudioMute, exec, ${playerctl} play-pause" "$mainMod,XF86AudioMute, exec, ${playerctl} play-pause"
"$mainMod,XF86AudioRaiseVolume, exec, ${playerctl} next" "$mainMod,XF86AudioRaiseVolume, exec, ${playerctl} next"
"$mainMod,XF86AudioLowerVolume, exec, ${playerctl} previous" "$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, H, exec, ${./files/vim-hypr-nav.sh} l"
"$mainMod, L, exec, ${./files/vim-hypr-nav.sh} r" "$mainMod, L, exec, ${./files/vim-hypr-nav.sh} r"
@ -257,27 +241,16 @@ in
"$mainMod, T, split-workspace, empty" "$mainMod, T, split-workspace, empty"
"$mainMod, TAB, split-workspace, m+1" "$mainMod, TAB, split-workspace, m+1"
"$mainMod SHIFT, TAB, split-workspace, m-1" "$mainMod SHIFT, TAB, split-workspace, m-1"
] ] ++ (
++ (
# workspaces # workspaces
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10} # binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
builtins.concatLists (builtins.genList builtins.concatLists (builtins.genList (x:
(
x:
let let
ws = ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
let in [
c = (x + 1) / 10;
in
builtins.toString (x + 1 - (c * 10));
in
[
"$mainMod, ${ws}, split-workspace, ${toString (x + 1)}" "$mainMod, ${ws}, split-workspace, ${toString (x + 1)}"
"$mainMod SHIFT, ${ws}, split-movetoworkspace, ${toString (x + 1)}" "$mainMod SHIFT, ${ws}, split-movetoworkspace, ${toString (x + 1)}"
] ]) 10));
)
10)
);
}; };
}; };
} }

View File

@ -19,8 +19,8 @@
"<backspace2>" = "quit"; "<backspace2>" = "quit";
"<c-e>" = "half-up"; "<c-e>" = "half-up";
"." = "set hidden!"; "." = "set hidden!";
"o" = "$nvim -c \"lua require(\\\"oil\\\").open(\\\"$PWD\\\")\""; "o" = ''$nvim -c "lua require(\"oil\").open(\"$PWD\")"'';
"-" = "$nvim -c \"lua require(\\\"oil\\\").open(\\\"$PWD\\\")\""; "-" = ''$nvim -c "lua require(\"oil\").open(\"$PWD\")"'';
"<enter>" = "open"; "<enter>" = "open";
"<c-t>" = ":jump <enter>"; "<c-t>" = ":jump <enter>";
}; };
@ -32,8 +32,6 @@
}} }}
''; '';
}; };
cmdKeybindings = { cmdKeybindings = { q = "quit"; };
q = "quit";
};
}; };
} }

View File

@ -10,17 +10,9 @@
services.hyprpaper = { services.hyprpaper = {
settings = { settings = {
wallpaper = [ wallpaper = [ "Virtual-1,${./hyprland/files/wallpaper.png}" ];
"Virtual-1,${./hyprland/files/wallpaper.png}"
];
}; };
}; };
programs.waybar = { programs.waybar = { settings = { mainBar = { output = "Virtual-1"; }; }; };
settings = {
mainBar = {
output = "Virtual-1";
};
};
};
} }

View File

@ -1,9 +1,7 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [ papirus-icon-theme ];
papirus-icon-theme
];
programs.rofi = { programs.rofi = {
enable = true; enable = true;
@ -14,11 +12,8 @@
kb-cancel = "Super_L+XF86Launch5,Escape"; kb-cancel = "Super_L+XF86Launch5,Escape";
combi-hide-mode-prefix = true; combi-hide-mode-prefix = true;
}; };
theme = theme = let inherit (config.lib.formats.rasi) mkLiteral;
let in {
inherit (config.lib.formats.rasi) mkLiteral;
in
{
"*" = { "*" = {
background = mkLiteral "#0f111a"; background = mkLiteral "#0f111a";
foreground = mkLiteral "#f1f1f1"; foreground = mkLiteral "#f1f1f1";
@ -117,9 +112,7 @@
border = mkLiteral "10px"; border = mkLiteral "10px";
}; };
"element-text" = { "element-text" = { padding = mkLiteral "20px 0px 0px 10px"; };
padding = mkLiteral "20px 0px 0px 10px";
};
"element selected" = { "element selected" = {
background-color = mkLiteral "@selected"; background-color = mkLiteral "@selected";

View File

@ -3,7 +3,7 @@
{ {
programs.ssh = { programs.ssh = {
enable = true; enable = true;
includes = ["gpulab_hosts_config"]; includes = [ "gpulab_hosts_config" ];
matchBlocks = { matchBlocks = {
mallorea = { mallorea = {
host = "mallorea"; host = "mallorea";

View File

@ -1,7 +1,4 @@
{ inputs { inputs, pkgs, ... }:
, pkgs
, ...
}:
{ {
programs.waybar = { programs.waybar = {
@ -15,7 +12,18 @@
# output = "DP-2"; # Fill in with host-specific config! # output = "DP-2"; # Fill in with host-specific config!
modules-left = [ "wlr/taskbar" ]; modules-left = [ "wlr/taskbar" ];
modules-center = [ "hyprland/workspaces" ]; 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" = { "wlr/taskbar" = {
on-click = "activate"; on-click = "activate";
on-click-right = "close"; on-click-right = "close";
@ -34,12 +42,8 @@
warp-on-scroll = false; warp-on-scroll = false;
format = "{name}"; format = "{name}";
}; };
"hyprland/window" = { "hyprland/window" = { max-length = 50; };
max-length = 50; tray = { spacing = 10; };
};
tray = {
spacing = 10;
};
"clock#clock2" = { "clock#clock2" = {
timezone = "Europe/Brussels"; timezone = "Europe/Brussels";
format = "{:%H:%M:%S}"; format = "{:%H:%M:%S}";
@ -61,8 +65,10 @@
interval = 5; interval = 5;
}; };
"custom/updates" = { "custom/updates" = {
exec = "bash -c \"checkupdates | wc -l\""; exec = ''bash -c "checkupdates | wc -l"'';
on-click = "alacritty -e bash -c \"yay ; echo '\nDone, press any key to exit...' ; read\""; on-click = ''
alacritty -e bash -c "yay ; echo '
Done, press any key to exit...' ; read"'';
interval = 60; interval = 60;
format = "{} "; format = "{} ";
}; };

View File

@ -17,7 +17,8 @@
BROWSER = "firefox"; BROWSER = "firefox";
GPULAB_CERT = "${config.xdg.dataHome}/gpulab.pem"; GPULAB_CERT = "${config.xdg.dataHome}/gpulab.pem";
GPULAB_DEV = "False"; 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"; ARCHFLAGS = "-arch x86_64";
TERM = "screen-256color"; TERM = "screen-256color";
PYTHONDONTWRITEBYTECODE = "1"; PYTHONDONTWRITEBYTECODE = "1";
@ -28,9 +29,7 @@
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
}; };
programs.fzf = { programs.fzf = { enable = true; };
enable = true;
};
programs.zsh = { programs.zsh = {
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;
@ -62,17 +61,22 @@
ll = "ls -lhat"; ll = "ls -lhat";
ls = "ls --color=auto"; 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"; 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"; python = "python3";
v = "nvim -c ':lua require(\"oil\").open()' && cd \"\$(cat /tmp/oil_dir 2> /dev/null || pwd)\""; v = ''
cpr = "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1"; nvim -c ':lua require("oil").open()' && cd "$(cat /tmp/oil_dir 2> /dev/null || pwd)"'';
mvr = "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1 --remove-source-files"; cpr =
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'"; "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1";
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'"; mvr =
push = "git add -A && git commit -m \"`date`\" && git push"; "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"; reset = "tput reset";
}; };
history.size = 10000000; history.size = 10000000;

View File

@ -1,4 +1,4 @@
{inputs, pkgs, ...}: { inputs, pkgs, ... }:
{ {
services.pcscd.enable = true; services.pcscd.enable = true;
@ -8,15 +8,12 @@
HandlePowerKey=suspend HandlePowerKey=suspend
''; '';
# Calendar # Calendar
programs.dconf.enable = true; programs.dconf.enable = true;
services.gnome.evolution-data-server.enable = true; services.gnome.evolution-data-server.enable = true;
services.gnome.gnome-online-accounts.enable = true; services.gnome.gnome-online-accounts.enable = true;
services.gnome.gnome-keyring.enable = true; services.gnome.gnome-keyring.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [ wireguard-tools ];
wireguard-tools
];
# Add the server using gnome-online-accounts: # Add the server using gnome-online-accounts:
# nix-shell -p gnome.gnome-control-center --run "gnome-control-center" # 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. # Just add the main webdav server and gnome-calendar will automatically pick up all available calendars.
@ -27,13 +24,11 @@
dns = [ "10.0.0.1" "fdc9:281f:04d7:9ee9::1" ]; dns = [ "10.0.0.1" "fdc9:281f:04d7:9ee9::1" ];
privateKeyFile = "/home/user/.secrets/Wireguard/wg0.key"; privateKeyFile = "/home/user/.secrets/Wireguard/wg0.key";
listenPort = 51820; listenPort = 51820;
peers = [ peers = [{
{
publicKey = "/9ppjm3yeD0duDvxrqgcHscHmftXko+0s2RbivNEy2c="; publicKey = "/9ppjm3yeD0duDvxrqgcHscHmftXko+0s2RbivNEy2c=";
allowedIPs = [ "10.0.0.1/8" ]; allowedIPs = [ "10.0.0.1/8" ];
endpoint = "192.168.1.1:13231"; endpoint = "192.168.1.1:13231";
} }];
];
}; };
}; };
fileSystems."/home/server" = { fileSystems."/home/server" = {

View File

@ -4,22 +4,21 @@
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
[ (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.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/feef066a-9abf-418d-a39e-603c406a72ff"; device = "/dev/disk/by-uuid/feef066a-9abf-418d-a39e-603c406a72ff";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/0D9B-B227"; device = "/dev/disk/by-uuid/0D9B-B227";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [ "fmask=0077" "dmask=0077" ];
}; };
@ -35,5 +34,6 @@
# networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 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;
} }

View File

@ -1,2 +1 @@
{ { }
}

View File

@ -4,24 +4,20 @@
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
[
(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.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{
device = "/dev/disk/by-uuid/563963bd-8e27-4c9c-a1d6-d204ea7c43ff"; device = "/dev/disk/by-uuid/563963bd-8e27-4c9c-a1d6-d204ea7c43ff";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{
device = "/dev/disk/by-uuid/9F3C-9F3B"; device = "/dev/disk/by-uuid/9F3C-9F3B";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [ "fmask=0077" "dmask=0077" ];