Compare commits
No commits in common. "6e6cd036d2872f95601b7936cc11837f5ddf537d" and "1044a3f92fd34fb78b855e4c27184525abfde6c8" have entirely different histories.
6e6cd036d2
...
1044a3f92f
10
home/comma.nix
Normal file
10
home/comma.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ lib, pkgs, config, inputs, ... } @args:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.nix-index-database.hmModules.nix-index
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
comma
|
||||||
|
];
|
||||||
|
}
|
12
home/common.nix
Normal file
12
home/common.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ lib, pkgs, osConfig, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./comma.nix
|
||||||
|
];
|
||||||
|
# home.username = "nullbite";
|
||||||
|
# home.homeDirectory = "/home/nullbite";
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
btop
|
||||||
|
];
|
||||||
|
}
|
@ -1,6 +0,0 @@
|
|||||||
{...}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./wm.nix
|
|
||||||
];
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
{ pkgs, lib, config, osConfig, options, ...}:
|
|
||||||
let
|
|
||||||
cfg = config.nixfiles.common.wm;
|
|
||||||
inherit (lib) mkDefault;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.nixfiles.common.wm = {
|
|
||||||
enable = lib.mkEnableOption "common window manager config";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
# Common options for standalone window managers; many of these (or
|
|
||||||
# alternatives thereof) are pulled in by desktop environments.
|
|
||||||
services = {
|
|
||||||
udiskie = {
|
|
||||||
enable = mkDefault true;
|
|
||||||
automount = mkDefault false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -5,11 +5,6 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./common
|
|
||||||
./package-sets
|
|
||||||
./profile
|
|
||||||
./programs
|
|
||||||
./sessions
|
|
||||||
];
|
];
|
||||||
config = {};
|
config = {};
|
||||||
options.nixfiles = {
|
options.nixfiles = {
|
||||||
|
243
home/hyprland.nix
Normal file
243
home/hyprland.nix
Normal file
@ -0,0 +1,243 @@
|
|||||||
|
{ lib, pkgs, osConfig, outputs, ... }@args:
|
||||||
|
let
|
||||||
|
mkd = lib.mkDefault;
|
||||||
|
terminal = "${pkgs.kitty}/bin/kitty";
|
||||||
|
files = "${pkgs.dolphin}/bin/dolphin";
|
||||||
|
rofi = "${pkgs.rofi-wayland}/bin/rofi";
|
||||||
|
notifydaemon = "${pkgs.dunst}/bin/dunst";
|
||||||
|
brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
|
||||||
|
polkit-agent = "${pkgs.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1";
|
||||||
|
|
||||||
|
# Hyprland workspace configuration
|
||||||
|
mainWorkspaces = builtins.genList (x: x+1) (9 ++ [0]);
|
||||||
|
workspaceName = key: let
|
||||||
|
inherit (builtins) hasAttr;
|
||||||
|
keyNames = {
|
||||||
|
"0" = "10";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
if hasAttr key keyNames then keyNames."${key}" else key;
|
||||||
|
|
||||||
|
inherit (outputs.packages.${pkgs.system}) wm-helpers;
|
||||||
|
keysetting = "${wm-helpers}/bin/keysetting";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# FIXME this is temporary just to get it working, need to make wm-common an
|
||||||
|
# option first
|
||||||
|
imports = [
|
||||||
|
./wm-common.nix
|
||||||
|
];
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
kitty
|
||||||
|
dolphin
|
||||||
|
rofi-wayland
|
||||||
|
wev
|
||||||
|
dunst
|
||||||
|
pkgs.brightnessctl
|
||||||
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
|
||||||
|
# Xwayland fix
|
||||||
|
xwayland.force_zero_scaling = mkd true;
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
monitor = mkd ",preferred,auto,auto";
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||||
|
|
||||||
|
# Execute your favorite apps at launch
|
||||||
|
# exec-once = waybar & hyprpaper & firefox
|
||||||
|
|
||||||
|
exec-once = [
|
||||||
|
notifydaemon
|
||||||
|
polkit-agent
|
||||||
|
];
|
||||||
|
|
||||||
|
# Source a file (multi-file configs)
|
||||||
|
# source = ~/.config/hypr/myColors.conf
|
||||||
|
|
||||||
|
# Some default env vars.
|
||||||
|
env = mkd "XCURSOR_SIZE,24";
|
||||||
|
|
||||||
|
|
||||||
|
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
||||||
|
input = {
|
||||||
|
kb_layout = mkd "us";
|
||||||
|
# kb_variant =
|
||||||
|
# kb_model =
|
||||||
|
# kb_options =
|
||||||
|
# kb_rules =
|
||||||
|
|
||||||
|
follow_mouse = mkd true;
|
||||||
|
|
||||||
|
touchpad.natural_scroll = mkd true;
|
||||||
|
|
||||||
|
sensitivity = mkd 0; # -1.0 - 1.0, 0 means no modification.
|
||||||
|
};
|
||||||
|
|
||||||
|
general = {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
|
||||||
|
gaps_in = mkd 5;
|
||||||
|
gaps_out = mkd 20;
|
||||||
|
border_size = mkd 2;
|
||||||
|
"col.active_border" = mkd "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||||
|
"col.inactive_border" = mkd "rgba(595959aa)";
|
||||||
|
|
||||||
|
layout = mkd "dwindle";
|
||||||
|
|
||||||
|
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||||
|
allow_tearing = mkd false;
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
rounding = mkd 10;
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = mkd true;
|
||||||
|
size = mkd 3;
|
||||||
|
passes = mkd 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
drop_shadow = mkd true;
|
||||||
|
shadow_range = mkd 4;
|
||||||
|
shadow_render_power = mkd 3;
|
||||||
|
"col.shadow" = mkd "rgba(1a1a1aee)";
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = mkd true;
|
||||||
|
|
||||||
|
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||||
|
|
||||||
|
bezier = mkd "myBezier, 0.05, 0.9, 0.1, 1.05";
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
"windows, 1, 7, myBezier"
|
||||||
|
"windowsOut, 1, 7, default, popin 80%"
|
||||||
|
"border, 1, 10, default"
|
||||||
|
"borderangle, 1, 8, default"
|
||||||
|
"fade, 1, 7, default"
|
||||||
|
"workspaces, 1, 6, default"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||||
|
pseudotile = mkd true; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
|
preserve_split = mkd true; # you probably want this
|
||||||
|
};
|
||||||
|
|
||||||
|
master = {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
|
new_is_master = mkd "true";
|
||||||
|
};
|
||||||
|
|
||||||
|
gestures = {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
workspace_swipe = mkd "false";
|
||||||
|
};
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
force_default_wallpaper = mkd 0; # Set to 0 to disable the anime mascot wallpapers
|
||||||
|
};
|
||||||
|
|
||||||
|
"$mod" = mkd "SUPER";
|
||||||
|
|
||||||
|
# Example windowrule v1
|
||||||
|
# windowrule = float, ^(kitty)$
|
||||||
|
# Example windowrule v2
|
||||||
|
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||||
|
|
||||||
|
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||||
|
bind = [
|
||||||
|
"$mod, Q, exec, ${terminal}"
|
||||||
|
"$mod, Return, exec, ${terminal}"
|
||||||
|
"$mod, C, killactive, "
|
||||||
|
"$mod, M, exit, "
|
||||||
|
"$mod, E, exec, ${files}"
|
||||||
|
"$mod, V, togglefloating, "
|
||||||
|
"$mod, R, exec, ${rofi} -show drun"
|
||||||
|
"$mod, P, pseudo," # dwindle"
|
||||||
|
"$mod, O, togglesplit," # dwindle"
|
||||||
|
|
||||||
|
# Move focus with mod + arrow keys
|
||||||
|
"$mod, left, movefocus, l"
|
||||||
|
"$mod, right, movefocus, r"
|
||||||
|
"$mod, up, movefocus, u"
|
||||||
|
"$mod, down, movefocus, d"
|
||||||
|
|
||||||
|
"$mod, h, movefocus, l"
|
||||||
|
"$mod, j, movefocus, d"
|
||||||
|
"$mod, k, movefocus, u"
|
||||||
|
"$mod, l, movefocus, r"
|
||||||
|
|
||||||
|
# Switch workspaces with mod + [0-9]
|
||||||
|
"$mod, 1, workspace, 1"
|
||||||
|
"$mod, 2, workspace, 2"
|
||||||
|
"$mod, 3, workspace, 3"
|
||||||
|
"$mod, 4, workspace, 4"
|
||||||
|
"$mod, 5, workspace, 5"
|
||||||
|
"$mod, 6, workspace, 6"
|
||||||
|
"$mod, 7, workspace, 7"
|
||||||
|
"$mod, 8, workspace, 8"
|
||||||
|
"$mod, 9, workspace, 9"
|
||||||
|
"$mod, 0, workspace, 10"
|
||||||
|
#] ++ map () [] ++ TODO reconfigure these with workspace helper function
|
||||||
|
#[
|
||||||
|
# Move active window to a workspace with mod + SHIFT + [0-9]
|
||||||
|
"$mod SHIFT, 1, movetoworkspace, 1"
|
||||||
|
"$mod SHIFT, 2, movetoworkspace, 2"
|
||||||
|
"$mod SHIFT, 3, movetoworkspace, 3"
|
||||||
|
"$mod SHIFT, 4, movetoworkspace, 4"
|
||||||
|
"$mod SHIFT, 5, movetoworkspace, 5"
|
||||||
|
"$mod SHIFT, 6, movetoworkspace, 6"
|
||||||
|
"$mod SHIFT, 7, movetoworkspace, 7"
|
||||||
|
"$mod SHIFT, 8, movetoworkspace, 8"
|
||||||
|
"$mod SHIFT, 9, movetoworkspace, 9"
|
||||||
|
"$mod SHIFT, 0, movetoworkspace, 10"
|
||||||
|
|
||||||
|
# Example special workspace (scratchpad)
|
||||||
|
"$mod, S, togglespecialworkspace, magic"
|
||||||
|
"$mod SHIFT, S, movetoworkspace, special:magic"
|
||||||
|
|
||||||
|
# Scroll through existing workspaces with mod + scroll
|
||||||
|
"$mod, mouse_down, workspace, e+1"
|
||||||
|
"$mod, mouse_up, workspace, e-1"
|
||||||
|
|
||||||
|
# show this file (help)
|
||||||
|
("$mod, slash, exec, ${terminal} -e ${pkgs.neovim}/bin/nvim '+set nomodifiable' '+noremap q :q<CR>' " + args.vars.self.outPath + "/home/hyprland.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
# repeat, ignore mods
|
||||||
|
bindei = [
|
||||||
|
# Volume controls
|
||||||
|
",XF86AudioRaiseVolume, exec, ${keysetting} volumeup"
|
||||||
|
",XF86AudioLowerVolume, exec, ${keysetting} volumedown"
|
||||||
|
",XF86AudioMute, exec, ${keysetting} mute"
|
||||||
|
",XF86AudioMicMute, exec, ${keysetting} micmute"
|
||||||
|
|
||||||
|
# brightness
|
||||||
|
",XF86KbdBrightnessDown, exec, ${keysetting} keydown"
|
||||||
|
",XF86KbdBrightnessUp, exec, ${keysetting} keyup"
|
||||||
|
",XF86MonBrightnessDown, exec, ${keysetting} mondown"
|
||||||
|
",XF86MonBrightnessUp, exec, ${keysetting} monup"
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
bindm = [
|
||||||
|
# Move/resize windows with mod + LMB/RMB and dragging
|
||||||
|
"$mod, mouse:272, movewindow"
|
||||||
|
"$mod, mouse:273, resizewindow"
|
||||||
|
# RMB sucks on laptop
|
||||||
|
"$mod SHIFT, mouse:272, resizewindow"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -1,5 +0,0 @@
|
|||||||
{...}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
];
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
{ lib, pkgs, config, osConfig, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.nixfiles.profile.base;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# imports = [
|
|
||||||
# ./comma.nix
|
|
||||||
# ];
|
|
||||||
# home.username = "nullbite";
|
|
||||||
# home.homeDirectory = "/home/nullbite";
|
|
||||||
|
|
||||||
options.nixfiles.profile.base = {
|
|
||||||
enable = lib.mkEnableOption "base profile";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
nixfiles.programs.comma.enable = true;
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
btop
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{...}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./base.nix
|
|
||||||
];
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
{ lib, pkgs, config, inputs, ... } @args:
|
|
||||||
let
|
|
||||||
cfg = config.nixfiles.programs.comma;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.nix-index-database.hmModules.nix-index
|
|
||||||
];
|
|
||||||
|
|
||||||
options.nixfiles.programs.comma = {
|
|
||||||
enable = lib.mkEnableOption "comma";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
programs.nix-index.symlinkToCacheHome = lib.mkDefault cfg.enable;
|
|
||||||
home.packages = with pkgs; lib.optionals cfg.enable [
|
|
||||||
comma
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{...}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./comma.nix
|
|
||||||
];
|
|
||||||
}
|
|
@ -1,12 +1,6 @@
|
|||||||
# Configuration for root user.
|
|
||||||
# TODO this file is sorta an exception to my repo organization, it should
|
|
||||||
# probably be somewhere else.
|
|
||||||
{ config, lib, pkgs, ... }@args:
|
{ config, lib, pkgs, ... }@args:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./.
|
./comma.nix
|
||||||
];
|
];
|
||||||
config = {
|
|
||||||
nixfiles.programs.comma.enable = true;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
{...}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./hyprland.nix
|
|
||||||
];
|
|
||||||
}
|
|
@ -1,257 +0,0 @@
|
|||||||
{ lib, pkgs, config, osConfig ? {}, outputs, ... }@args:
|
|
||||||
let
|
|
||||||
cfg = config.nixfiles.sessions.hyprland;
|
|
||||||
mkd = lib.mkDefault;
|
|
||||||
terminal = "${pkgs.kitty}/bin/kitty";
|
|
||||||
files = "${pkgs.dolphin}/bin/dolphin";
|
|
||||||
rofi = "${pkgs.rofi-wayland}/bin/rofi";
|
|
||||||
notifydaemon = "${pkgs.dunst}/bin/dunst";
|
|
||||||
brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
|
|
||||||
polkit-agent = "${pkgs.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1";
|
|
||||||
|
|
||||||
# Hyprland workspace configuration
|
|
||||||
mainWorkspaces = builtins.genList (x: x+1) (9 ++ [0]);
|
|
||||||
workspaceName = key: let
|
|
||||||
inherit (builtins) hasAttr;
|
|
||||||
keyNames = {
|
|
||||||
"0" = "10";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
if hasAttr key keyNames then keyNames."${key}" else key;
|
|
||||||
|
|
||||||
inherit (outputs.packages.${pkgs.system}) wm-helpers;
|
|
||||||
keysetting = "${wm-helpers}/bin/keysetting";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# FIXME this is temporary just to get it working, need to make wm-common an
|
|
||||||
# option first
|
|
||||||
# imports = [
|
|
||||||
# ./wm-common.nix
|
|
||||||
# ];
|
|
||||||
|
|
||||||
options.nixfiles.sessions.hyprland = {
|
|
||||||
enable = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = if (builtins.hasAttr "home-manager" osConfig) then osConfig.nixfiles.sessions.hyprland.enable else false;
|
|
||||||
example = true;
|
|
||||||
description = "Whether to enable hyprland.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
nixfiles.common.wm.enable = true;
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
kitty
|
|
||||||
dolphin
|
|
||||||
rofi-wayland
|
|
||||||
wev
|
|
||||||
dunst
|
|
||||||
pkgs.brightnessctl
|
|
||||||
];
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
|
|
||||||
# Xwayland fix
|
|
||||||
xwayland.force_zero_scaling = mkd true;
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
|
||||||
monitor = mkd ",preferred,auto,auto";
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
|
||||||
|
|
||||||
# Execute your favorite apps at launch
|
|
||||||
# exec-once = waybar & hyprpaper & firefox
|
|
||||||
|
|
||||||
exec-once = [
|
|
||||||
notifydaemon
|
|
||||||
polkit-agent
|
|
||||||
];
|
|
||||||
|
|
||||||
# Source a file (multi-file configs)
|
|
||||||
# source = ~/.config/hypr/myColors.conf
|
|
||||||
|
|
||||||
# Some default env vars.
|
|
||||||
env = mkd "XCURSOR_SIZE,24";
|
|
||||||
|
|
||||||
|
|
||||||
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
|
||||||
input = {
|
|
||||||
kb_layout = mkd "us";
|
|
||||||
# kb_variant =
|
|
||||||
# kb_model =
|
|
||||||
# kb_options =
|
|
||||||
# kb_rules =
|
|
||||||
|
|
||||||
follow_mouse = mkd true;
|
|
||||||
|
|
||||||
touchpad.natural_scroll = mkd true;
|
|
||||||
|
|
||||||
sensitivity = mkd 0; # -1.0 - 1.0, 0 means no modification.
|
|
||||||
};
|
|
||||||
|
|
||||||
general = {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
||||||
|
|
||||||
gaps_in = mkd 5;
|
|
||||||
gaps_out = mkd 20;
|
|
||||||
border_size = mkd 2;
|
|
||||||
"col.active_border" = mkd "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
|
||||||
"col.inactive_border" = mkd "rgba(595959aa)";
|
|
||||||
|
|
||||||
layout = mkd "dwindle";
|
|
||||||
|
|
||||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
|
||||||
allow_tearing = mkd false;
|
|
||||||
};
|
|
||||||
|
|
||||||
decoration = {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
||||||
rounding = mkd 10;
|
|
||||||
|
|
||||||
blur = {
|
|
||||||
enabled = mkd true;
|
|
||||||
size = mkd 3;
|
|
||||||
passes = mkd 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
drop_shadow = mkd true;
|
|
||||||
shadow_range = mkd 4;
|
|
||||||
shadow_render_power = mkd 3;
|
|
||||||
"col.shadow" = mkd "rgba(1a1a1aee)";
|
|
||||||
};
|
|
||||||
|
|
||||||
animations = {
|
|
||||||
enabled = mkd true;
|
|
||||||
|
|
||||||
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
|
||||||
|
|
||||||
bezier = mkd "myBezier, 0.05, 0.9, 0.1, 1.05";
|
|
||||||
|
|
||||||
animation = [
|
|
||||||
"windows, 1, 7, myBezier"
|
|
||||||
"windowsOut, 1, 7, default, popin 80%"
|
|
||||||
"border, 1, 10, default"
|
|
||||||
"borderangle, 1, 8, default"
|
|
||||||
"fade, 1, 7, default"
|
|
||||||
"workspaces, 1, 6, default"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
dwindle = {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
|
||||||
pseudotile = mkd true; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
|
||||||
preserve_split = mkd true; # you probably want this
|
|
||||||
};
|
|
||||||
|
|
||||||
master = {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
|
||||||
new_is_master = mkd "true";
|
|
||||||
};
|
|
||||||
|
|
||||||
gestures = {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
||||||
workspace_swipe = mkd "false";
|
|
||||||
};
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
||||||
force_default_wallpaper = mkd 0; # Set to 0 to disable the anime mascot wallpapers
|
|
||||||
};
|
|
||||||
|
|
||||||
"$mod" = mkd "SUPER";
|
|
||||||
|
|
||||||
# Example windowrule v1
|
|
||||||
# windowrule = float, ^(kitty)$
|
|
||||||
# Example windowrule v2
|
|
||||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
|
||||||
|
|
||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
|
||||||
bind = [
|
|
||||||
"$mod, Q, exec, ${terminal}"
|
|
||||||
"$mod, Return, exec, ${terminal}"
|
|
||||||
"$mod, C, killactive, "
|
|
||||||
"$mod, M, exit, "
|
|
||||||
"$mod, E, exec, ${files}"
|
|
||||||
"$mod, V, togglefloating, "
|
|
||||||
"$mod, R, exec, ${rofi} -show drun"
|
|
||||||
"$mod, P, pseudo," # dwindle"
|
|
||||||
"$mod, O, togglesplit," # dwindle"
|
|
||||||
|
|
||||||
# Move focus with mod + arrow keys
|
|
||||||
"$mod, left, movefocus, l"
|
|
||||||
"$mod, right, movefocus, r"
|
|
||||||
"$mod, up, movefocus, u"
|
|
||||||
"$mod, down, movefocus, d"
|
|
||||||
|
|
||||||
"$mod, h, movefocus, l"
|
|
||||||
"$mod, j, movefocus, d"
|
|
||||||
"$mod, k, movefocus, u"
|
|
||||||
"$mod, l, movefocus, r"
|
|
||||||
|
|
||||||
# Switch workspaces with mod + [0-9]
|
|
||||||
"$mod, 1, workspace, 1"
|
|
||||||
"$mod, 2, workspace, 2"
|
|
||||||
"$mod, 3, workspace, 3"
|
|
||||||
"$mod, 4, workspace, 4"
|
|
||||||
"$mod, 5, workspace, 5"
|
|
||||||
"$mod, 6, workspace, 6"
|
|
||||||
"$mod, 7, workspace, 7"
|
|
||||||
"$mod, 8, workspace, 8"
|
|
||||||
"$mod, 9, workspace, 9"
|
|
||||||
"$mod, 0, workspace, 10"
|
|
||||||
#] ++ map () [] ++ TODO reconfigure these with workspace helper function
|
|
||||||
#[
|
|
||||||
# Move active window to a workspace with mod + SHIFT + [0-9]
|
|
||||||
"$mod SHIFT, 1, movetoworkspace, 1"
|
|
||||||
"$mod SHIFT, 2, movetoworkspace, 2"
|
|
||||||
"$mod SHIFT, 3, movetoworkspace, 3"
|
|
||||||
"$mod SHIFT, 4, movetoworkspace, 4"
|
|
||||||
"$mod SHIFT, 5, movetoworkspace, 5"
|
|
||||||
"$mod SHIFT, 6, movetoworkspace, 6"
|
|
||||||
"$mod SHIFT, 7, movetoworkspace, 7"
|
|
||||||
"$mod SHIFT, 8, movetoworkspace, 8"
|
|
||||||
"$mod SHIFT, 9, movetoworkspace, 9"
|
|
||||||
"$mod SHIFT, 0, movetoworkspace, 10"
|
|
||||||
|
|
||||||
# Example special workspace (scratchpad)
|
|
||||||
"$mod, S, togglespecialworkspace, magic"
|
|
||||||
"$mod SHIFT, S, movetoworkspace, special:magic"
|
|
||||||
|
|
||||||
# Scroll through existing workspaces with mod + scroll
|
|
||||||
"$mod, mouse_down, workspace, e+1"
|
|
||||||
"$mod, mouse_up, workspace, e-1"
|
|
||||||
|
|
||||||
# show this file (help)
|
|
||||||
("$mod, slash, exec, ${terminal} -e ${pkgs.neovim}/bin/nvim '+set nomodifiable' '+noremap q :q<CR>' " + args.vars.self.outPath + "/home/hyprland.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
# repeat, ignore mods
|
|
||||||
bindei = [
|
|
||||||
# Volume controls
|
|
||||||
",XF86AudioRaiseVolume, exec, ${keysetting} volumeup"
|
|
||||||
",XF86AudioLowerVolume, exec, ${keysetting} volumedown"
|
|
||||||
",XF86AudioMute, exec, ${keysetting} mute"
|
|
||||||
",XF86AudioMicMute, exec, ${keysetting} micmute"
|
|
||||||
|
|
||||||
# brightness
|
|
||||||
",XF86KbdBrightnessDown, exec, ${keysetting} keydown"
|
|
||||||
",XF86KbdBrightnessUp, exec, ${keysetting} keyup"
|
|
||||||
",XF86MonBrightnessDown, exec, ${keysetting} mondown"
|
|
||||||
",XF86MonBrightnessUp, exec, ${keysetting} monup"
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
bindm = [
|
|
||||||
# Move/resize windows with mod + LMB/RMB and dragging
|
|
||||||
"$mod, mouse:272, movewindow"
|
|
||||||
"$mod, mouse:273, resizewindow"
|
|
||||||
# RMB sucks on laptop
|
|
||||||
"$mod SHIFT, mouse:272, resizewindow"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
14
home/wm-common.nix
Normal file
14
home/wm-common.nix
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{ pkgs, lib, config, osConfig, options, ...}:
|
||||||
|
let
|
||||||
|
inherit (lib) mkDefault;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# Common options for standalone window managers; many of these (or
|
||||||
|
# alternatives thereof) are pulled in by desktop environments.
|
||||||
|
services = {
|
||||||
|
udiskie = {
|
||||||
|
enable = mkDefault true;
|
||||||
|
automount = mkDefault false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -1,17 +1,13 @@
|
|||||||
{ lib, pkgs, osConfig, ... }:
|
{ lib, pkgs, osConfig, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../home
|
../../home/common.nix
|
||||||
|
../../home/hyprland.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = {
|
|
||||||
nixfiles = {
|
|
||||||
profile.base.enable = true;
|
|
||||||
};
|
|
||||||
home.stateVersion = "23.11";
|
home.stateVersion = "23.11";
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
monitor = ",preferred,auto,1.25";
|
monitor = ",preferred,auto,1.25";
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user