Compare commits
9 commits
5980c2ef82
...
e7c8cec95e
| Author | SHA1 | Date | |
|---|---|---|---|
| e7c8cec95e | |||
| aedd86fee7 | |||
| aca68cadb0 | |||
| 4500bace9c | |||
| 74b6fb4c4e | |||
| c1c2195692 | |||
| 8905c31816 | |||
| 622fc07b5a | |||
| f7307329ab |
14 changed files with 267 additions and 124 deletions
78
flake.lock
generated
78
flake.lock
generated
|
|
@ -136,11 +136,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749398372,
|
"lastModified": 1754091436,
|
||||||
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
"narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
"rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -228,11 +228,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752544374,
|
"lastModified": 1753592768,
|
||||||
"narHash": "sha256-ReX0NG6nIAEtQQjLqeu1vUU2jjZuMlpymNtb4VQYeus=",
|
"narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "2e00ed310c218127e02ffcf28ddd4e0f669fde3e",
|
"rev": "fc3add429f21450359369af74c2375cb34a2d204",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -300,11 +300,11 @@
|
||||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752659960,
|
"lastModified": 1754744872,
|
||||||
"narHash": "sha256-AP/Gds8b1hhU50prgLjYSv5qpy9D8E6Xre/r/gb3K8M=",
|
"narHash": "sha256-rcMHMs+dFWaDXev092gfxTfxHEWcUY/6SRV+cseNevQ=",
|
||||||
"owner": "sodiboo",
|
"owner": "sodiboo",
|
||||||
"repo": "niri-flake",
|
"repo": "niri-flake",
|
||||||
"rev": "8e3f7bbada0cf637d23de4200c6e1a5a157de9cc",
|
"rev": "346fc31bcc4d2dbcc3e8ce8dbb622e4255ff54b7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -333,11 +333,11 @@
|
||||||
"niri-unstable": {
|
"niri-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752656275,
|
"lastModified": 1754742008,
|
||||||
"narHash": "sha256-tTRMyGxqHF5IkYcnvHbwCgRBRUBhvRapxtuUfrN/8Ic=",
|
"narHash": "sha256-Tp0FG7VpLudVEC622d91z2hbdfPLCXxw0Nv43iNN4O0=",
|
||||||
"owner": "YaLTeR",
|
"owner": "YaLTeR",
|
||||||
"repo": "niri",
|
"repo": "niri",
|
||||||
"rev": "7b065f8618f63b7cf761ebe05a2cebd556113a6c",
|
"rev": "67361f88fd01974ebee4cf80f0e29c87d805cc39",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -364,11 +364,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752436162,
|
"lastModified": 1754689972,
|
||||||
"narHash": "sha256-Kt1UIPi7kZqkSc5HVj6UY5YLHHEzPBkgpNUByuyxtlw=",
|
"narHash": "sha256-eogqv6FqZXHgqrbZzHnq43GalnRbLTkbBbFtEfm1RSc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "dfcd5b901dbab46c9c6e80b265648481aafb01f8",
|
"rev": "fc756aa6f5d3e2e5666efcf865d190701fef150a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -380,11 +380,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752436162,
|
"lastModified": 1754689972,
|
||||||
"narHash": "sha256-Kt1UIPi7kZqkSc5HVj6UY5YLHHEzPBkgpNUByuyxtlw=",
|
"narHash": "sha256-eogqv6FqZXHgqrbZzHnq43GalnRbLTkbBbFtEfm1RSc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "dfcd5b901dbab46c9c6e80b265648481aafb01f8",
|
"rev": "fc756aa6f5d3e2e5666efcf865d190701fef150a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -395,11 +395,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751984180,
|
"lastModified": 1754214453,
|
||||||
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
|
"narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
|
"rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -419,11 +419,11 @@
|
||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752010420,
|
"lastModified": 1754262585,
|
||||||
"narHash": "sha256-fboKrq2WeEC2Y4LaZNiiH2dptUYHtSbYhzE0FTN/u+M=",
|
"narHash": "sha256-Yz5dJ0VzGRzSRHdHldsWQbuFYmtP3NWNreCvPfCi9CI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "a11133507a930dfd235324cdf776bdb5e6ddd717",
|
"rev": "ab1b5962e1ca90b42de47e1172e0d24ca80e6256",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -469,11 +469,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749730855,
|
"lastModified": 1753771532,
|
||||||
"narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
|
"narHash": "sha256-Pmpke0JtLRzgdlwDC5a+aiLVZ11JPUO5Bcqkj0nHE/k=",
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"repo": "search",
|
"repo": "search",
|
||||||
"rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
|
"rev": "2a65adaf2c0c428efb0f4a2bc406aab466e96a06",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -502,11 +502,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752544651,
|
"lastModified": 1754328224,
|
||||||
"narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=",
|
"narHash": "sha256-glPK8DF329/dXtosV7YSzRlF4n35WDjaVwdOMEoEXHA=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "2c8def626f54708a9c38a5861866660395bb3461",
|
"rev": "49021900e69812ba7ddb9e40f9170218a7eca9f4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -536,11 +536,11 @@
|
||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752599753,
|
"lastModified": 1754599117,
|
||||||
"narHash": "sha256-8ppgjqbFc/697OXgMntMhk+kAQF4BHBog73oP6Xds8Y=",
|
"narHash": "sha256-AzAYdZlat002vCjCKWdFpGi2xUaiOU4DtIPnv1nomD8=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "a35db84c7568c75f3ec665fdcd962cc9c52b6c0a",
|
"rev": "312dec38b2231b21f36903d1bdce96daa11548ff",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -718,11 +718,11 @@
|
||||||
"xwayland-satellite-unstable": {
|
"xwayland-satellite-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752338000,
|
"lastModified": 1754533920,
|
||||||
"narHash": "sha256-Fxlp/yKtynug0jyuauAmvZU2SzHCfwlwWf85j+IvQ0U=",
|
"narHash": "sha256-fCZ68Yud1sUCq6UNXj0SDyiBgVA8gJUE+14ZFGsFJG8=",
|
||||||
"owner": "Supreeeme",
|
"owner": "Supreeeme",
|
||||||
"repo": "xwayland-satellite",
|
"repo": "xwayland-satellite",
|
||||||
"rev": "ba78881a68182ce338041846164cbfed0d70935c",
|
"rev": "e0d1dad25a158551ab58547b2ece4b7d5a19929c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -736,11 +736,11 @@
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752293576,
|
"lastModified": 1754540523,
|
||||||
"narHash": "sha256-84tAzrC/kioWRmG0jLt1HWRP/wHON7zjLtXCwWRNI/g=",
|
"narHash": "sha256-Wgv2qVckt8q11/xErY7hYdLAPcoOnZ0BkMLqyXegCzQ=",
|
||||||
"owner": "youwen5",
|
"owner": "youwen5",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "1a40cdcb093a0025631ef692caa53130f821dd77",
|
"rev": "451454de40a4433174153e823994fe2ecd3c869e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,10 @@
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./programs/neovim/.
|
./programs/neovim/.
|
||||||
./programs/helix.nix
|
|
||||||
./programs/git.nix
|
./programs/git.nix
|
||||||
./programs/lf/.
|
./programs/lf/.
|
||||||
./programs/zsh.nix
|
./programs/zsh.nix
|
||||||
./programs/tmux.nix
|
./programs/tmux/.
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -6,18 +6,11 @@
|
||||||
}: let
|
}: let
|
||||||
modifier = config.windowManager.modifierKey;
|
modifier = config.windowManager.modifierKey;
|
||||||
menu = config.programs.menu.dmenuCommand;
|
menu = config.programs.menu.dmenuCommand;
|
||||||
lock_cmd = "${config.programs.hyprlock.package}/bin/hyprlock";
|
|
||||||
color = {
|
|
||||||
inherit (config.lib.stylix.colors) yellow red;
|
|
||||||
bg = config.lib.stylix.colors.base00;
|
|
||||||
fg = config.lib.stylix.colors.base07;
|
|
||||||
text = config.lib.stylix.colors.base05;
|
|
||||||
};
|
|
||||||
rgb = color: "rgb(${color})";
|
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
(import ../utils/waybar.nix)
|
(import ../utils/waybar.nix)
|
||||||
(import ../utils/display.nix)
|
(import ../utils/display.nix)
|
||||||
|
(import ../utils/hypridle.nix)
|
||||||
../../workstation.nix
|
../../workstation.nix
|
||||||
];
|
];
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
|
|
@ -26,64 +19,6 @@ in {
|
||||||
extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr];
|
extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.hypridle = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
before_sleep_cmd = "rbw lock; hyprlock";
|
|
||||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
|
||||||
ignore_dbus_inhibit = false;
|
|
||||||
lock_cmd = "pidof ${lock_cmd} || ${lock_cmd}";
|
|
||||||
};
|
|
||||||
|
|
||||||
listener = [
|
|
||||||
{
|
|
||||||
timeout = 300;
|
|
||||||
on-timeout = "loginctl lock-session";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
timeout = 1200;
|
|
||||||
on-timeout = "hyprctl dispatch dpms off";
|
|
||||||
on-resume = "hyprctl dispatch dpms on";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.hyprlock = {
|
|
||||||
enable = true;
|
|
||||||
settings = lib.mkForce {
|
|
||||||
# https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/
|
|
||||||
general = {
|
|
||||||
hide_cursor = true;
|
|
||||||
grace = 10;
|
|
||||||
ignore_empty_input = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
background = [
|
|
||||||
{
|
|
||||||
path = "screenshot";
|
|
||||||
blur_passes = 3;
|
|
||||||
blur_size = 8;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
input-field = [
|
|
||||||
{
|
|
||||||
dots_center = true;
|
|
||||||
fade_on_empty = true;
|
|
||||||
outline_thickness = 5;
|
|
||||||
shadow_passes = 2;
|
|
||||||
inner_color = rgb color.bg;
|
|
||||||
outer_color = rgb color.fg;
|
|
||||||
font_color = rgb color.text;
|
|
||||||
fail_color = rgb color.red;
|
|
||||||
check_color = rgb color.yellow;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd = {
|
systemd = {
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,14 @@
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
|
imports = [
|
||||||
|
(import ../utils/hypridle.nix)
|
||||||
|
(import ../utils/waybar.nix)
|
||||||
|
../../workstation.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.waybar.settings.mainBar.modules-left = ["niri/workspaces" "niri/window"];
|
||||||
|
|
||||||
programs.fuzzel = {
|
programs.fuzzel = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
@ -15,13 +23,18 @@
|
||||||
};
|
};
|
||||||
services.hyprpaper.enable = true;
|
services.hyprpaper.enable = true;
|
||||||
systemd.user.services.hyprpaper.Unit.WantedBy = ["niri.service"];
|
systemd.user.services.hyprpaper.Unit.WantedBy = ["niri.service"];
|
||||||
|
systemd.user.services.waybar.Unit.WantedBy = ["niri.service"];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [brightnessctl];
|
||||||
|
|
||||||
services.mako.enable = true;
|
services.mako.enable = true;
|
||||||
|
systemd.user.services.mako.Unit.WantedBy = ["niri.service"];
|
||||||
programs.niri = {
|
programs.niri = {
|
||||||
settings = {
|
settings = {
|
||||||
input.keyboard = {
|
input.keyboard = {
|
||||||
xkb.layout = "us";
|
xkb.layout = "us";
|
||||||
xkb.variant = "dvorak";
|
xkb.variant = "dvorak";
|
||||||
|
xkb.options = "caps:escape";
|
||||||
};
|
};
|
||||||
input.mouse = {
|
input.mouse = {
|
||||||
accel-profile = "flat";
|
accel-profile = "flat";
|
||||||
|
|
@ -29,11 +42,41 @@
|
||||||
input.focus-follows-mouse = {
|
input.focus-follows-mouse = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
input.touchpad = {
|
||||||
|
dwt = true; # disable when typing
|
||||||
|
};
|
||||||
prefer-no-csd = true;
|
prefer-no-csd = true;
|
||||||
spawn-at-startup = [
|
spawn-at-startup = [
|
||||||
{command = [(lib.getExe pkgs.xwayland-satellite)];}
|
{command = [(lib.getExe pkgs.xwayland-satellite)];}
|
||||||
{command = [(lib.getExe config.services.mako.package)];}
|
|
||||||
];
|
];
|
||||||
|
layout = {
|
||||||
|
preset-column-widths = [
|
||||||
|
{proportion = 1.0;}
|
||||||
|
{proportion = 1.0 / 2.0;}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
environment = {
|
||||||
|
NIXOS_OZONE_WL = "1";
|
||||||
|
DISPLAY = ":1";
|
||||||
|
};
|
||||||
|
outputs."DP-3" = {
|
||||||
|
mode = {
|
||||||
|
width = 1920;
|
||||||
|
height = 1080;
|
||||||
|
refresh = 143.855;
|
||||||
|
};
|
||||||
|
variable-refresh-rate = true;
|
||||||
|
scale = 1.0;
|
||||||
|
};
|
||||||
|
outputs."HDMI-A-1" = {
|
||||||
|
mode = {
|
||||||
|
width = 3840;
|
||||||
|
height = 2160;
|
||||||
|
refresh = 120.0;
|
||||||
|
};
|
||||||
|
variable-refresh-rate = true;
|
||||||
|
scale = 2.5;
|
||||||
|
};
|
||||||
binds = with config.lib.niri.actions; {
|
binds = with config.lib.niri.actions; {
|
||||||
"Mod+Return".action.spawn = [(lib.getExe config.programs.terminal)];
|
"Mod+Return".action.spawn = [(lib.getExe config.programs.terminal)];
|
||||||
"Mod+O".action.spawn = [(lib.getExe pkgs.cosmic-files)];
|
"Mod+O".action.spawn = [(lib.getExe pkgs.cosmic-files)];
|
||||||
|
|
@ -45,12 +88,14 @@
|
||||||
"Mod+Ctrl+WheelScrollRight".action = move-column-right;
|
"Mod+Ctrl+WheelScrollRight".action = move-column-right;
|
||||||
|
|
||||||
"Mod+Right".action = focus-column-right;
|
"Mod+Right".action = focus-column-right;
|
||||||
|
"Mod+Ctrl+Right".action = move-column-right;
|
||||||
"Mod+L".action = focus-column-right;
|
"Mod+L".action = focus-column-right;
|
||||||
"Mod+Ctrl+L".action = move-column-right;
|
"Mod+Ctrl+L".action = move-column-right;
|
||||||
|
|
||||||
"Mod+WheelScrollLeft".action = focus-column-left;
|
"Mod+WheelScrollLeft".action = focus-column-left;
|
||||||
"Mod+Ctrl+WheelScrollLeft".action = move-column-left;
|
"Mod+Ctrl+WheelScrollLeft".action = move-column-left;
|
||||||
"Mod+Left".action = focus-column-left;
|
"Mod+Left".action = focus-column-left;
|
||||||
|
"Mod+Ctrl+Left".action = move-column-left;
|
||||||
"Mod+H".action = focus-column-left;
|
"Mod+H".action = focus-column-left;
|
||||||
"Mod+Ctrl+H".action = move-column-left;
|
"Mod+Ctrl+H".action = move-column-left;
|
||||||
|
|
||||||
|
|
@ -60,17 +105,40 @@
|
||||||
"Mod+Comma".action = consume-or-expel-window-left;
|
"Mod+Comma".action = consume-or-expel-window-left;
|
||||||
"Mod+Period".action = consume-or-expel-window-right;
|
"Mod+Period".action = consume-or-expel-window-right;
|
||||||
|
|
||||||
|
"Mod+F".action = fullscreen-window;
|
||||||
"Mod+Q".action = close-window;
|
"Mod+Q".action = close-window;
|
||||||
|
|
||||||
|
"Mod+Shift+Escape".action = quit;
|
||||||
|
"Mod+Escape".action.spawn = lib.getExe config.programs.hyprlock.package;
|
||||||
|
|
||||||
"Mod+WheelScrollDown".action = focus-workspace-down;
|
"Mod+WheelScrollDown".action = focus-workspace-down;
|
||||||
"Mod+WheelScrollUp".action = focus-workspace-up;
|
"Mod+WheelScrollUp".action = focus-workspace-up;
|
||||||
"Mod+Ctrl+WheelScrollDown".action = move-column-to-workspace-down;
|
"Mod+Ctrl+WheelScrollDown".action = move-column-to-workspace-down;
|
||||||
"Mod+Ctrl+WheelScrollUp".action = move-column-to-workspace-up;
|
"Mod+Ctrl+WheelScrollUp".action = move-column-to-workspace-up;
|
||||||
|
|
||||||
"Mod+M".action = maximize-column;
|
"Mod+J".action = focus-workspace-down;
|
||||||
|
"Mod+K".action = focus-workspace-up;
|
||||||
|
"Mod+Ctrl+J".action = move-column-to-workspace-down;
|
||||||
|
"Mod+Ctrl+K".action = move-column-to-workspace-up;
|
||||||
|
|
||||||
|
"Mod+Down".action = focus-workspace-down;
|
||||||
|
"Mod+Up".action = focus-workspace-up;
|
||||||
|
"Mod+Ctrl+Down".action = move-column-to-workspace-down;
|
||||||
|
"Mod+Ctrl+Up".action = move-column-to-workspace-up;
|
||||||
|
|
||||||
|
"Mod+M".action = switch-preset-column-width;
|
||||||
"Mod+G".action = toggle-window-floating;
|
"Mod+G".action = toggle-window-floating;
|
||||||
|
|
||||||
"Print".action = screenshot;
|
"Print".action = screenshot;
|
||||||
|
|
||||||
|
"XF86AudioRaiseVolume".action.spawn = ["raise-volume"];
|
||||||
|
"XF86AudioLowerVolume".action.spawn = ["lower-volume"];
|
||||||
|
|
||||||
|
"XF86AudioMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"];
|
||||||
|
"XF86AudioMicMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"];
|
||||||
|
|
||||||
|
"XF86MonBrightnessUp".action.spawn = ["brightness" "+10%"];
|
||||||
|
"XF86MonBrightnessDown".action.spawn = ["brightness" "10%-"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
72
home/desktop/utils/hypridle.nix
Normal file
72
home/desktop/utils/hypridle.nix
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
rgb = color: "rgb(${color})";
|
||||||
|
lock_cmd = "${config.programs.hyprlock.package}/bin/hyprlock";
|
||||||
|
color = {
|
||||||
|
inherit (config.lib.stylix.colors) yellow red;
|
||||||
|
bg = config.lib.stylix.colors.base00;
|
||||||
|
fg = config.lib.stylix.colors.base07;
|
||||||
|
text = config.lib.stylix.colors.base05;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
services.hypridle = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
before_sleep_cmd = "rbw lock; hyprlock";
|
||||||
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||||
|
ignore_dbus_inhibit = false;
|
||||||
|
lock_cmd = "pidof ${lock_cmd} || ${lock_cmd}";
|
||||||
|
};
|
||||||
|
|
||||||
|
listener = [
|
||||||
|
{
|
||||||
|
timeout = 300;
|
||||||
|
on-timeout = "loginctl lock-session";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 1200;
|
||||||
|
on-timeout = "hyprctl dispatch dpms off";
|
||||||
|
on-resume = "hyprctl dispatch dpms on";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.hyprlock = {
|
||||||
|
enable = true;
|
||||||
|
settings = lib.mkForce {
|
||||||
|
# https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/
|
||||||
|
general = {
|
||||||
|
hide_cursor = true;
|
||||||
|
grace = 10;
|
||||||
|
ignore_empty_input = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
background = [
|
||||||
|
{
|
||||||
|
path = "screenshot";
|
||||||
|
blur_passes = 3;
|
||||||
|
blur_size = 8;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
input-field = [
|
||||||
|
{
|
||||||
|
dots_center = true;
|
||||||
|
fade_on_empty = true;
|
||||||
|
outline_thickness = 5;
|
||||||
|
shadow_passes = 2;
|
||||||
|
inner_color = rgb color.bg;
|
||||||
|
outer_color = rgb color.fg;
|
||||||
|
font_color = rgb color.text;
|
||||||
|
fail_color = rgb color.red;
|
||||||
|
check_color = rgb color.yellow;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -7,9 +7,24 @@
|
||||||
layer = "bottom";
|
layer = "bottom";
|
||||||
position = "top";
|
position = "top";
|
||||||
height = 36;
|
height = 36;
|
||||||
modules-right = ["mpris" "idle_inhibitor" "pulseaudio" "clock" "tray" "battery"];
|
modules-right = ["mpris" "power-profiles-daemon" "cpu" "idle_inhibitor" "pulseaudio" "clock" "tray" "battery"];
|
||||||
|
"cpu" = {
|
||||||
|
"format" = "{icon}";
|
||||||
|
"format-icons" = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"];
|
||||||
|
};
|
||||||
|
"power-profiles-daemon" = {
|
||||||
|
"format" = "{icon}";
|
||||||
|
"tooltip-format" = "Power profile: {profile}\nDriver: {driver}";
|
||||||
|
"tooltip" = true;
|
||||||
|
"format-icons" = {
|
||||||
|
"default" = "";
|
||||||
|
"performance" = "";
|
||||||
|
"balanced" = "";
|
||||||
|
"power-saver" = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
clock = {
|
clock = {
|
||||||
format = "📅 {:%a %b-%d %I:%M %p}";
|
format = "📅 {:%a %b-%d, %I:%M %p}";
|
||||||
};
|
};
|
||||||
idle_inhibitor = {
|
idle_inhibitor = {
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
{pkgs, inputs, user, ...}: {
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
user,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./mpv.nix
|
./mpv.nix
|
||||||
./vscode.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
|
@ -14,15 +18,10 @@
|
||||||
|
|
||||||
# tools
|
# tools
|
||||||
inkscape
|
inkscape
|
||||||
kdePackages.okular
|
|
||||||
gimp3
|
gimp3
|
||||||
libreoffice
|
libreoffice
|
||||||
dbeaver-bin
|
|
||||||
zed-editor
|
|
||||||
insomnia
|
|
||||||
|
|
||||||
# entertainment
|
# entertainment
|
||||||
kdePackages.kasts
|
|
||||||
shortwave
|
shortwave
|
||||||
youtube-music
|
youtube-music
|
||||||
transmission_4-gtk
|
transmission_4-gtk
|
||||||
|
|
@ -73,5 +72,4 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.brave;
|
package = pkgs.brave;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,8 @@ in {
|
||||||
{
|
{
|
||||||
name = "raise-volume";
|
name = "raise-volume";
|
||||||
text = ''
|
text = ''
|
||||||
${my-deps.amixer} sset Master 5%+ && ${my-deps.amixer} sset Master unmute
|
wpctl "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+" -l 1.0
|
||||||
|
notify-volume
|
||||||
'';
|
'';
|
||||||
hotkeys = [
|
hotkeys = [
|
||||||
{key = "bracketright";}
|
{key = "bracketright";}
|
||||||
|
|
@ -196,12 +197,24 @@ in {
|
||||||
key = "XF86AudioRaiseVolume";
|
key = "XF86AudioRaiseVolume";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
install = false;
|
install = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "notify-volume";
|
||||||
|
text = ''
|
||||||
|
vol=$(wpctl get-volume "@DEFAULT_AUDIO_SINK@" | cut -d"." -f2)
|
||||||
|
|
||||||
|
${my-deps.notify-send} "Volume" -h "int:value:$vol" -h string:x-canonical-private-synchronous:volume -t 3000
|
||||||
|
'';
|
||||||
|
hotkeys = [];
|
||||||
|
install = true;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "lower-volume";
|
name = "lower-volume";
|
||||||
text = ''
|
text = ''
|
||||||
${my-deps.amixer} sset Master 5%-
|
${my-deps.amixer} sset Master 5%-
|
||||||
|
|
||||||
|
notify-volume
|
||||||
'';
|
'';
|
||||||
hotkeys = [
|
hotkeys = [
|
||||||
{key = "bracketleft";}
|
{key = "bracketleft";}
|
||||||
|
|
@ -210,7 +223,7 @@ in {
|
||||||
key = "XF86AudioLowerVolume";
|
key = "XF86AudioLowerVolume";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
install = false;
|
install = true;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "skip-track";
|
name = "skip-track";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,10 @@
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
sessionizer = lib.getExe (pkgs.writeShellScriptBin "tmux-sessionizer" (lib.readFile ./sessionizer.sh));
|
||||||
|
in {
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
enable = true;
|
enable = true;
|
||||||
baseIndex = 1;
|
baseIndex = 1;
|
||||||
|
|
@ -25,8 +31,12 @@
|
||||||
bind -n M-u copy-mode
|
bind -n M-u copy-mode
|
||||||
bind -n M-p previous-window
|
bind -n M-p previous-window
|
||||||
bind -n M-n next-window
|
bind -n M-n next-window
|
||||||
|
bind-key -r f run-shell "tmux neww ${sessionizer}"
|
||||||
|
|
||||||
set-option -g renumber-windows on
|
set-option -g renumber-windows on
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
programs.zsh.initContent = ''
|
||||||
|
bindkey -s ^f "${sessionizer}\n"
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
29
home/programs/tmux/sessionizer.sh
Normal file
29
home/programs/tmux/sessionizer.sh
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if [[ $# -eq 1 ]]; then
|
||||||
|
selected=$1
|
||||||
|
else
|
||||||
|
selected=$(find ~/Documents/code ~/Documents/infra -mindepth 1 -maxdepth 1 -type d | fzf)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $selected ]]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
selected_name=$(basename "$selected" | tr . _)
|
||||||
|
tmux_running=$(pgrep tmux)
|
||||||
|
|
||||||
|
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
|
||||||
|
tmux new-session -s $selected_name -c $selected
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! tmux has-session -t=$selected_name 2> /dev/null; then
|
||||||
|
tmux new-session -ds $selected_name -c $selected
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $TMUX ]]; then
|
||||||
|
tmux attach -t $selected_name
|
||||||
|
else
|
||||||
|
tmux switch-client -t $selected_name
|
||||||
|
fi
|
||||||
|
|
@ -5,6 +5,9 @@
|
||||||
}: let
|
}: let
|
||||||
modifier = config.windowManager.modifierKey;
|
modifier = config.windowManager.modifierKey;
|
||||||
in {
|
in {
|
||||||
|
imports = [
|
||||||
|
./vscode.nix
|
||||||
|
];
|
||||||
roles.email = {
|
roles.email = {
|
||||||
enable = true;
|
enable = true;
|
||||||
email = "tristan.beedell@cryoserver.com";
|
email = "tristan.beedell@cryoserver.com";
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
playerctl
|
playerctl
|
||||||
quickemu
|
quickemu
|
||||||
devenv
|
devenv
|
||||||
|
bottles
|
||||||
];
|
];
|
||||||
|
|
||||||
services.udiskie = {
|
services.udiskie = {
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
"map to guest" = "bad user";
|
"map to guest" = "bad user";
|
||||||
};
|
};
|
||||||
"Music" = {
|
"Music" = {
|
||||||
"path" = "/mnt/storage/media/Public/";
|
"path" = "/mnt/storage/media/Music";
|
||||||
"browseable" = "yes";
|
"browseable" = "yes";
|
||||||
"read only" = "no";
|
"read only" = "no";
|
||||||
"guest ok" = "yes";
|
"guest ok" = "yes";
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ buildLua {
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://codeberg.org/ferreum/mpv-skipsilence.git";
|
url = "https://codeberg.org/ferreum/mpv-skipsilence.git";
|
||||||
hash = "sha256-fg8vfeb68nr0bTBIvr0FnRnoB48/kV957pn22tWcz1g=";
|
hash = "sha256-+sOMWFFumJUk5gFE1iCTvWub3PWzYOkulXJLCGS4fYA=";
|
||||||
};
|
};
|
||||||
passthru.updateScript = gitUpdater {};
|
passthru.updateScript = gitUpdater {};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue