feat(alex): more niri stuffs

This commit is contained in:
Ashhhleyyy 2024-08-06 17:13:44 +01:00
parent 647c6cb036
commit 7489ec102b
Signed by: ash
GPG key ID: 83B789081A0878FB
4 changed files with 409 additions and 3 deletions

View file

@ -99,6 +99,7 @@
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
overlays-module overlays-module
niri-flake.nixosModules.niri
./hosts/alex/configuration.nix ./hosts/alex/configuration.nix
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
@ -112,6 +113,7 @@
./home/ash/desktop.nix ./home/ash/desktop.nix
./home/ash/emacs.nix ./home/ash/emacs.nix
# ./home/ash/obs.nix # ./home/ash/obs.nix
./home/ash/niri.nix
./home/ash/tpm-fido.nix ./home/ash/tpm-fido.nix
./home/ash/vscodium.nix ./home/ash/vscodium.nix
./home/ash/zoom.nix ./home/ash/zoom.nix
@ -142,6 +144,7 @@
./home/ash/obs.nix ./home/ash/obs.nix
./home/ash/intellij.nix ./home/ash/intellij.nix
./home/ash/lutris.nix ./home/ash/lutris.nix
./home/ash/vscodium.nix ./home/ash/vscodium.nix
./home/ash/zoom.nix ./home/ash/zoom.nix
]; ];
@ -208,6 +211,28 @@
]; ];
}; };
nixosConfigurations.em = nixpkgs-unstable.lib.nixosSystem {
system = "x86_64-linux";
modules = [
overlays-module
niri-flake.nixosModules.niri
./hosts/em/configuration.nix
home-manager-unstable.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.ash = { ... }: {
imports = [
fsh.homeModules.fsh
./home/ash
./home/ash/niri.nix
./home/ash/desktop.nix
];
};
}
];
};
packages.x86_64-linux = { packages.x86_64-linux = {
emira = nixos-generators.nixosGenerate { emira = nixos-generators.nixosGenerate {
system = "x86_64-linux"; system = "x86_64-linux";

View file

@ -1,5 +1,256 @@
{ config, pkgs, ... }: { { config, pkgs, ... }: {
programs.niri = { programs.niri = {
# enable = true; settings = {
input = {
focus-follows-mouse.enable = true;
};
layout = {
gaps = 8;
preset-column-widths = [
{ proportion = 1. / 3.; }
{ proportion = 1. / 2.; }
{ proportion = 2. / 3.; }
];
default-column-width.proportion = 1. / 2.;
focus-ring = {
active.color = "#cba6f7";
inactive.color = "#313244";
};
};
binds = with config.lib.niri.actions; {
"Mod+Shift+Slash".action = show-hotkey-overlay;
"Mod+T".action = spawn "kitty";
"Mod+Space".action = spawn "fuzzel";
"Super+Alt+L".action = spawn "swaylock";
"XF86AudioRaiseVolume" = {
allow-when-locked = true;
action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+";
};
"XF86AudioLowerVolume" = {
allow-when-locked = true;
action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-";
};
"XF86AudioMute" = {
allow-when-locked = true;
action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle";
};
"XF86AudioMicMute" = {
allow-when-locked = true;
action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle";
};
"Mod+Q".action = close-window;
"Mod+Left".action = focus-column-left;
"Mod+Down".action = focus-window-down;
"Mod+Up".action = focus-window-up;
"Mod+Right".action = focus-column-right;
"Mod+H".action = focus-column-left;
"Mod+J".action = focus-window-down;
"Mod+K".action = focus-window-up;
"Mod+L".action = focus-column-right;
"Mod+Ctrl+Left".action = move-column-left;
"Mod+Ctrl+Down".action = move-window-down;
"Mod+Ctrl+Up".action = move-window-up;
"Mod+Ctrl+Right".action = move-column-right;
"Mod+Ctrl+H".action = move-column-left;
"Mod+Ctrl+J".action = move-window-down;
"Mod+Ctrl+K".action = move-window-up;
"Mod+Ctrl+L".action = move-column-right;
"Mod+Home".action = focus-column-first;
"Mod+End".action = focus-column-last;
"Mod+Ctrl+Home".action = move-column-to-first;
"Mod+Ctrl+End".action = move-column-to-last;
"Mod+Shift+Left".action = focus-monitor-left;
"Mod+Shift+Down".action = focus-monitor-down;
"Mod+Shift+Up".action = focus-monitor-up;
"Mod+Shift+Right".action = focus-monitor-right;
"Mod+Shift+H".action = focus-monitor-left;
"Mod+Shift+J".action = focus-monitor-down;
"Mod+Shift+K".action = focus-monitor-up;
"Mod+Shift+L".action = focus-monitor-right;
"Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
"Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down;
"Mod+Shift+Ctrl+Up".action = move-column-to-monitor-up;
"Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
"Mod+Shift+Ctrl+H".action = move-column-to-monitor-left;
"Mod+Shift+Ctrl+J".action = move-column-to-monitor-down;
"Mod+Shift+Ctrl+K".action = move-column-to-monitor-up;
"Mod+Shift+Ctrl+L".action = move-column-to-monitor-right;
"Mod+Page_Down".action = focus-workspace-down;
"Mod+Page_Up".action = focus-workspace-up;
"Mod+U".action = focus-workspace-down;
"Mod+I".action = focus-workspace-up;
"Mod+Ctrl+Page_Down".action = move-column-to-workspace-down;
"Mod+Ctrl+Page_Up".action = move-column-to-workspace-up;
"Mod+Ctrl+U".action = move-column-to-workspace-down;
"Mod+Ctrl+I".action = move-column-to-workspace-up;
"Mod+Shift+Page_Down".action = move-workspace-down;
"Mod+Shift+Page_Up".action = move-workspace-up;
"Mod+Shift+U".action = move-workspace-down;
"Mod+Shift+I".action = move-workspace-up;
"Mod+1".action = focus-workspace 1;
"Mod+2".action = focus-workspace 2;
"Mod+3".action = focus-workspace 3;
"Mod+4".action = focus-workspace 4;
"Mod+5".action = focus-workspace 5;
"Mod+6".action = focus-workspace 6;
"Mod+7".action = focus-workspace 7;
"Mod+8".action = focus-workspace 8;
"Mod+9".action = focus-workspace 9;
"Mod+Ctrl+1".action = move-column-to-workspace 1;
"Mod+Ctrl+2".action = move-column-to-workspace 2;
"Mod+Ctrl+3".action = move-column-to-workspace 3;
"Mod+Ctrl+4".action = move-column-to-workspace 4;
"Mod+Ctrl+5".action = move-column-to-workspace 5;
"Mod+Ctrl+6".action = move-column-to-workspace 6;
"Mod+Ctrl+7".action = move-column-to-workspace 7;
"Mod+Ctrl+8".action = move-column-to-workspace 8;
"Mod+Ctrl+9".action = move-column-to-workspace 9;
"Mod+Comma".action = consume-window-into-column;
"Mod+Period".action = expel-window-from-column;
"Mod+R".action = switch-preset-column-width;
"Mod+Shift+R".action = reset-window-height;
"Mod+F".action = maximize-column;
"Mod+Shift+F".action = fullscreen-window;
"Mod+C".action = center-column;
"Mod+Minus".action = set-column-width "-10%";
"Mod+Plus".action = set-column-width "+10%";
"Mod+Shift+Minus".action = set-window-height "-10%";
"Mod+Shift+Plus".action = set-window-height "+10%";
"Print".action = screenshot;
"Ctrl+Print".action = screenshot-screen;
"Alt+Print".action = screenshot-window;
"Mod+Shift+E".action = quit;
"Mod+Shift+P".action = power-off-monitors;
};
};
};
programs.swaylock.enable = true;
programs.fuzzel = {
enable = true;
};
programs.waybar = {
enable = true;
style = ./waybar/style.css;
settings = [{
"layer" = "top"; # Waybar at top layer
"position" = "top"; # Waybar position (top|bottom|left|right)
# "width" = 1280; # Waybar width
# Choose the order of the modules
"modules-left" = [
"wlr/workspaces"
];
"modules-center" = [
# "custom/music"
];
"modules-right" = [
"pulseaudio"
"backlight"
"battery"
"clock"
"tray"
"custom/lock"
"custom/power"
];
"wlr/workspaces" = {
"disable-scroll" = true;
"sort-by-name" = true;
"format" = " {icon} ";
"format-icons" = {
"default" = "";
};
};
"tray" = {
"icon-size" = 21;
"spacing" = 10;
};
# "custom/music" = {
# "format" = " {}";
# "escape" = true;
# "interval" = 5;
# "tooltip" = false;
# "exec" = "playerctl metadata --format='{{ title }}'";
# "on-click" = "playerctl play-pause";
# "max-length" = 50
# };
"clock" = {
"timezone" = "Europe/London";
"tooltip-format" = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
"format-alt" = " {:%d/%m/%Y}";
"format" = " {:%H:%M}";
};
"backlight" = {
"device" = "intel_backlight";
"format" = "{icon}";
"format-icons" = ["" "" "" "" "" "" "" "" ""];
};
"battery" = {
"states" = {
"warning" = 30;
"critical" = 15;
};
"format" = "{icon}";
"format-charging" = "";
"format-plugged" = "";
"format-alt" = "{icon}";
"format-icons" = ["" "" "" "" "" "" "" "" "" "" "" ""];
};
"pulseaudio" = {
# "scroll-step" = 1, # %, can be a float
"format" = "{icon} {volume}%";
"format-muted" = "";
"format-icons" = {
"default" = ["" "" " "];
};
"on-click" = "pavucontrol";
};
"custom/lock" = {
"tooltip" = false;
"on-click" = "sh -c '(sleep 0.5s; swaylock --grace 0)' & disown";
"format" = "";
};
"custom/power" = {
"tooltip" = false;
"on-click" = "wlogout &";
"format" = "Logout";
};
}];
systemd.enable = true;
};
services.mako = {
enable = true;
};
systemd.user.services."swaybg" = {
Unit = {
Description = "swaybg";
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Service = {
ExecStart = "${pkgs.swaybg}/bin/swaybg -i $HOME/wallpaper.png";
Restart = "on-failure";
};
}; };
} }

131
home/ash/waybar/style.css Normal file
View file

@ -0,0 +1,131 @@
@define-color base #1e1e2e;
@define-color mantle #181825;
@define-color crust #11111b;
@define-color text #cdd6f4;
@define-color subtext0 #a6adc8;
@define-color subtext1 #bac2de;
@define-color surface0 #313244;
@define-color surface1 #45475a;
@define-color surface2 #585b70;
@define-color overlay0 #6c7086;
@define-color overlay1 #7f849c;
@define-color overlay2 #9399b2;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color sapphire #74c7ec;
@define-color sky #89dceb;
@define-color teal #94e2d5;
@define-color green #a6e3a1;
@define-color yellow #f9e2af;
@define-color peach #fab387;
@define-color maroon #eba0ac;
@define-color red #f38ba8;
@define-color mauve #cba6f7;
@define-color pink #f5c2e7;
@define-color flamingo #f2cdcd;
@define-color rosewater #f5e0dc;
* {
font-family: FantasqueSansMono Nerd Font;
font-size: 17px;
min-height: 0;
}
#waybar {
background: transparent;
color: @text;
margin: 5px 5px;
}
#workspaces {
border-radius: 1rem;
margin: 5px;
background-color: @surface0;
margin-left: 1rem;
}
#workspaces button {
color: @lavender;
border-radius: 1rem;
padding: 0.4rem;
}
#workspaces button.active {
color: @sky;
border-radius: 1rem;
}
#workspaces button:hover {
color: @sapphire;
border-radius: 1rem;
}
#custom-music,
#tray,
#backlight,
#clock,
#battery,
#pulseaudio,
#custom-lock,
#custom-power {
background-color: @surface0;
padding: 0.5rem 1rem;
margin: 5px 0;
}
#clock {
color: @blue;
border-radius: 0px 1rem 1rem 0px;
margin-right: 1rem;
}
#battery {
color: @green;
}
#battery.charging {
color: @green;
}
#battery.warning:not(.charging) {
color: @red;
}
#backlight {
color: @yellow;
}
#backlight, #battery {
border-radius: 0;
}
#pulseaudio {
color: @maroon;
border-radius: 1rem 0px 0px 1rem;
margin-left: 1rem;
}
#custom-music {
color: @mauve;
border-radius: 1rem;
}
#custom-lock {
border-radius: 1rem 0px 0px 1rem;
color: @lavender;
}
#custom-power {
margin-right: 1rem;
border-radius: 0px 1rem 1rem 0px;
color: @red;
}
#tray {
margin-right: 1rem;
border-radius: 1rem;
}

View file

@ -7,6 +7,7 @@
../../common/tpm.nix ../../common/tpm.nix
../../roles/kodi.nix ../../roles/kodi.nix
../../roles/libvirt.nix ../../roles/libvirt.nix
../../roles/niri.nix
../../roles/podman.nix ../../roles/podman.nix
./hardware-config.nix ./hardware-config.nix
]; ];
@ -22,7 +23,6 @@
networking.hostName = "alex"; networking.hostName = "alex";
networking.firewall.enable = false; networking.firewall.enable = false;
sound.enable = true;
hardware.pulseaudio.enable = false; hardware.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { services.pipewire = {
@ -45,7 +45,6 @@
xkb.layout = "gb"; xkb.layout = "gb";
}; };
displayManager.sddm.enable = true; displayManager.sddm.enable = true;
desktopManager.plasma6.enable = true;
}; };
#environment.systemPackages = with pkgs; [ #environment.systemPackages = with pkgs; [