change structure to make it more readable
This commit is contained in:
parent
dfa5f7c65c
commit
ad86712653
31 changed files with 259 additions and 234 deletions
23
home-manager/home.nix
Normal file
23
home-manager/home.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./stylix.nix
|
||||
./fastfetch.nix
|
||||
./hyprland.nix
|
||||
./programs/common.nix
|
||||
./programs/foot.nix
|
||||
./programs/git.nix
|
||||
./programs/nixcord.nix
|
||||
./hyprland/hyprland.nix
|
||||
inputs.nixcord.homeModules.nixcord
|
||||
inputs.spicetify-nix.homeManagerModules.spicetify
|
||||
];
|
||||
home.pointerCursor.enable = true;
|
||||
home.username = "lucy";
|
||||
home.homeDirectory = "/home/lucy";
|
||||
home.stateVersion = "26.05";
|
||||
}
|
||||
225
home-manager/hyprland/hyprland.lua
Normal file
225
home-manager/hyprland/hyprland.lua
Normal file
|
|
@ -0,0 +1,225 @@
|
|||
hl.monitor({
|
||||
output = "",
|
||||
mode = "preferred",
|
||||
position = "auto",
|
||||
scale = "1",
|
||||
})
|
||||
|
||||
hl.monitor({
|
||||
output = "eDP-1",
|
||||
mode = "preferred",
|
||||
position = "auto",
|
||||
scale = "1",
|
||||
})
|
||||
hl.monitor({
|
||||
output = "DP-5",
|
||||
mode = "2560x1440@165",
|
||||
position = "auto",
|
||||
scale = "1",
|
||||
})
|
||||
|
||||
-- Set programs that you use
|
||||
local terminal = "foot"
|
||||
local fileManager = "nemo"
|
||||
local menu = "fuzzel"
|
||||
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("qs")
|
||||
hl.exec_cmd("/usr/libexec/hyprpolkitagent")
|
||||
end)
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 5,
|
||||
gaps_out = 10,
|
||||
border_size = 2,
|
||||
resize_on_border = false,
|
||||
allow_tearing = false,
|
||||
layout = "master",
|
||||
},
|
||||
|
||||
decoration = {
|
||||
rounding = 18,
|
||||
rounding_power = 2,
|
||||
active_opacity = 1.0,
|
||||
inactive_opacity = 1.0,
|
||||
shadow = {
|
||||
enabled = true,
|
||||
range = 4,
|
||||
render_power = 3,
|
||||
color = 0xee1a1a1a,
|
||||
},
|
||||
|
||||
blur = {
|
||||
enabled = true,
|
||||
size = 3,
|
||||
passes = 2,
|
||||
vibrancy = 0.1696,
|
||||
},
|
||||
},
|
||||
|
||||
animations = {
|
||||
enabled = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
|
||||
hl.curve("easeOutQuint", { type = "bezier", points = { { 0.23, 1 }, { 0.32, 1 } } })
|
||||
hl.curve("easeInOutCubic", { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } })
|
||||
hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
|
||||
hl.curve("almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1 } } })
|
||||
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } })
|
||||
|
||||
-- Default springs
|
||||
hl.curve("easy", { type = "spring", mass = 1, stiffness = 71.2633, dampening = 15.8273644 })
|
||||
|
||||
hl.animation({ leaf = "global", enabled = true, speed = 5, bezier = "easeInOutCubic" })
|
||||
hl.animation({ leaf = "windows", enabled = true, speed = 4, bezier = "easeOutQuint", style = "slide" })
|
||||
hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "quick" })
|
||||
hl.animation({ leaf = "layers", enabled = true, speed = 4, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 2, bezier = "easeOutQuint", style = "slidevert" })
|
||||
hl.animation({ leaf = "border", enabled = false, speed = 2, bezier = "easeOutQuint", style = "slidevert" })
|
||||
hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" })
|
||||
|
||||
hl.config({
|
||||
master = {
|
||||
new_status = "slave",
|
||||
},
|
||||
})
|
||||
|
||||
---------------
|
||||
---- INPUT ----
|
||||
---------------
|
||||
|
||||
hl.config({
|
||||
input = {
|
||||
kb_layout = "eu",
|
||||
kb_variant = "",
|
||||
kb_model = "",
|
||||
kb_options = "",
|
||||
kb_rules = "",
|
||||
|
||||
follow_mouse = 1,
|
||||
|
||||
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
|
||||
accel_profile = "flat",
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = false,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
hl.gesture({
|
||||
fingers = 3,
|
||||
direction = "vertical",
|
||||
action = "workspace",
|
||||
})
|
||||
|
||||
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
|
||||
local aux_mod = "ALT"
|
||||
|
||||
-- Example binds, see https://wiki.hypr.land/Configuring/Basics/Binds/ for more
|
||||
hl.bind(mainMod .. " + Return", hl.dsp.exec_cmd(terminal))
|
||||
hl.bind(mainMod .. " + Q", hl.dsp.window.close())
|
||||
hl.bind(
|
||||
mainMod .. " + M",
|
||||
hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'")
|
||||
)
|
||||
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
|
||||
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
|
||||
hl.bind(mainMod .. " + Space", hl.dsp.exec_cmd(menu))
|
||||
|
||||
-- Move focus with mainMod + arrow keys
|
||||
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
|
||||
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
|
||||
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
|
||||
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" }))
|
||||
hl.bind(mainMod .. " + h", hl.dsp.focus({ direction = "left" }))
|
||||
hl.bind(mainMod .. " + l", hl.dsp.focus({ direction = "right" }))
|
||||
hl.bind(mainMod .. " + k", hl.dsp.focus({ direction = "up" }))
|
||||
hl.bind(mainMod .. " + j", hl.dsp.focus({ direction = "down" }))
|
||||
|
||||
for i = 1, 10 do
|
||||
local key = i % 10 -- 10 maps to key 0
|
||||
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i }))
|
||||
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
|
||||
end
|
||||
|
||||
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||
hl.bind(aux_mod .. " + mouse:272", hl.dsp.window.resize(), { mouse = true })
|
||||
|
||||
-- Laptop multimedia keys for volume and LCD brightness
|
||||
hl.bind(
|
||||
"XF86AudioRaiseVolume",
|
||||
hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind(
|
||||
"XF86AudioLowerVolume",
|
||||
hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind(
|
||||
"XF86AudioMute",
|
||||
hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind(
|
||||
"XF86AudioMicMute",
|
||||
hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl set 5%+"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl set 5%-"), { locked = true, repeating = true })
|
||||
|
||||
-- Requires playerctl
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
|
||||
|
||||
-- Screenshot binds
|
||||
hl.bind(aux_mod .. "+ SHIFT + S", hl.dsp.exec_cmd("grimblast copy output -n -c"))
|
||||
hl.bind(mainMod .. "+ SHIFT + S", hl.dsp.exec_cmd("grimblast copy area -n -f"))
|
||||
-- misc binds
|
||||
hl.bind(mainMod .. " + w", hl.dsp.exec_cmd("/etc/bash/bashrc.d/90-qs.bash switch-wall fuzzel"))
|
||||
hl.bind(mainMod .. " + t", hl.dsp.exec_cmd("/etc/bash/bashrc.d/90-qs.bash switch-theme fuzzel"))
|
||||
hl.bind(mainMod .. "+ SHIFT + minus", hl.dsp.window.move({ workspace = "special:scratchpad" }))
|
||||
hl.bind(mainMod .. " + minus", hl.dsp.workspace.toggle_special("scratchpad"))
|
||||
|
||||
hl.window_rule({
|
||||
-- Ignore maximize requests from all apps. You'll probably like this.
|
||||
name = "suppress-maximize-events",
|
||||
match = { class = ".*" },
|
||||
|
||||
suppress_event = "maximize",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
-- Fix some dragging issues with XWayland
|
||||
name = "fix-xwayland-drags",
|
||||
match = {
|
||||
class = "^$",
|
||||
title = "^$",
|
||||
xwayland = true,
|
||||
float = true,
|
||||
fullscreen = false,
|
||||
pin = false,
|
||||
},
|
||||
|
||||
no_focus = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "discord-to-ws6",
|
||||
match = { class = "^(discord)$" },
|
||||
workspace = "6 silent",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "spotify-to-ws7",
|
||||
match = { class = "^(Spotify)$" },
|
||||
workspace = "7 silent",
|
||||
})
|
||||
29
home-manager/hyprland/hyprland.nix
Normal file
29
home-manager/hyprland/hyprland.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = null;
|
||||
systemd.enable = false;
|
||||
extraConfig = ''
|
||||
require("main")
|
||||
'';
|
||||
portalPackage = pkgs.xdg-desktop-portal-hyprland;
|
||||
};
|
||||
xdg.configFile."hypr/main.lua".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos/home/hyprland/hyprland.lua";
|
||||
xdg.portal.config = {
|
||||
common = {
|
||||
default = [ "gtk" ];
|
||||
};
|
||||
hyprland = {
|
||||
default = [ "hyprland" ];
|
||||
"org.freedesktop.impl.portal.Secret" = [
|
||||
"gnome-keyring"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
16
home-manager/programs/common.nix
Normal file
16
home-manager/programs/common.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.quickshell.enable = true;
|
||||
programs.fuzzel.enable = true;
|
||||
programs.google-chrome.enable = true;
|
||||
programs.home-manager.enable = true;
|
||||
services.syncthing.enable = true;
|
||||
programs.spicetify.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
xournalpp
|
||||
fastfetch
|
||||
hyfetch
|
||||
nemo
|
||||
pavucontrol
|
||||
material-symbols
|
||||
];
|
||||
}
|
||||
61
home-manager/programs/fastfetch.nix
Normal file
61
home-manager/programs/fastfetch.nix
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
programs.fastfetch = {
|
||||
enable = true;
|
||||
settings = {
|
||||
logo = {
|
||||
type = "small";
|
||||
padding = {
|
||||
top = 1;
|
||||
right = 2;
|
||||
};
|
||||
};
|
||||
display = {
|
||||
separator = " ";
|
||||
};
|
||||
modules = [
|
||||
{
|
||||
key = "╭────────╮";
|
||||
type = "custom";
|
||||
}
|
||||
{
|
||||
key = "│{#34} distro {#keys}│";
|
||||
type = "os";
|
||||
format = "{name} {version}";
|
||||
}
|
||||
{
|
||||
key = "│{#35} kernel {#keys}│";
|
||||
type = "kernel";
|
||||
}
|
||||
{
|
||||
key = "│{#36} host {#keys}│";
|
||||
type = "host";
|
||||
}
|
||||
{
|
||||
key = "│{#33} wm {#keys}│";
|
||||
type = "wm";
|
||||
}
|
||||
{
|
||||
key = "│{#32} ip {#keys}│";
|
||||
type = "localip";
|
||||
showIpv6 = false;
|
||||
format = "{ipv4}";
|
||||
}
|
||||
{
|
||||
key = "├────────┤";
|
||||
type = "custom";
|
||||
}
|
||||
{
|
||||
key = "│{#39} colors {#keys}│";
|
||||
type = "colors";
|
||||
symbol = "circle";
|
||||
}
|
||||
{
|
||||
key = "╰────────╯";
|
||||
type = "custom";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
10
home-manager/programs/foot.nix
Normal file
10
home-manager/programs/foot.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
settings = {
|
||||
main = {
|
||||
pad = "20x20";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
10
home-manager/programs/git.nix
Normal file
10
home-manager/programs/git.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user.name = "lucy";
|
||||
user.email = "lucykaufmann@protonmail.com";
|
||||
init.defaultBranch = "main";
|
||||
};
|
||||
};
|
||||
}
|
||||
12
home-manager/programs/nixcord.nix
Normal file
12
home-manager/programs/nixcord.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
programs.nixcord = {
|
||||
enable = true;
|
||||
discord.vencord.enable = true;
|
||||
config = {
|
||||
plugins = {
|
||||
messageClickActions.enable = true;
|
||||
messageLogger.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
48
home-manager/stylix.nix
Normal file
48
home-manager/stylix.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
keep = [
|
||||
"spicetify"
|
||||
"neovim"
|
||||
"qt"
|
||||
"gtk"
|
||||
"hyprland"
|
||||
"hyprpaper"
|
||||
"foot"
|
||||
"fuzzel"
|
||||
"discord"
|
||||
"console"
|
||||
];
|
||||
dir = "${inputs.stylix}/modules";
|
||||
|
||||
drop = builtins.filter (n: !(builtins.elem n keep)) (
|
||||
builtins.attrNames (lib.filterAttrs (_: t: t == "directory") (builtins.readDir dir))
|
||||
);
|
||||
|
||||
disable =
|
||||
platform:
|
||||
map (n: "${dir}/${n}/${platform}.nix") (
|
||||
builtins.filter (n: builtins.pathExists "${dir}/${n}/${platform}.nix") drop
|
||||
);
|
||||
in
|
||||
|
||||
{
|
||||
disabledModules = disable "hm";
|
||||
stylix = {
|
||||
enable = true;
|
||||
autoEnable = false;
|
||||
targets = {
|
||||
gtk.enable = true;
|
||||
nixcord.enable = true;
|
||||
qt.enable = true;
|
||||
hyprland.enable = true;
|
||||
hyprland.hyprpaper.enable = false;
|
||||
fuzzel.enable = true;
|
||||
foot.enable = true;
|
||||
spicetify.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Reference in a new issue