Compare commits
No commits in common. "6b04ee02590183065832ffa92afd8f1d0e8a5b16" and "d6342c26b8f54490312ebc602b9317561ea303bc" have entirely different histories.
6b04ee0259
...
d6342c26b8
|
@ -37,6 +37,7 @@
|
|||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
lib = nixpkgs.lib;
|
||||
in {
|
||||
|
|
|
@ -11,4 +11,5 @@
|
|||
};
|
||||
efi.canTouchEfiVariables = lib.mkDefault true;
|
||||
};
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
imports =
|
||||
[(import ./bootloader.nix)]
|
||||
++ [(import ./hardware.nix)]
|
||||
++ [(import ./xserver.nix)]
|
||||
++ [(import ./nix.nix)]
|
||||
++ [(import ./network.nix)]
|
||||
++ [(import ./pipewire.nix)]
|
||||
|
|
|
@ -1,15 +1,5 @@
|
|||
{
|
||||
username,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
{username, ...}: {
|
||||
nix.settings = {
|
||||
trusted-users = ["${username}"];
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.getName pkg) [
|
||||
"steam"
|
||||
"steam-unwrapped"
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
{pkgs, ...}: {
|
||||
{...}: {
|
||||
services = {
|
||||
gvfs.enable = true;
|
||||
gnome.gnome-keyring.enable = true;
|
||||
dbus.enable = true;
|
||||
fstrim.enable = true;
|
||||
flatpak.enable = true;
|
||||
printing.enable = true;
|
||||
blueman.enable = true;
|
||||
|
@ -12,6 +13,8 @@
|
|||
openFirewall = true;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [pkgs.libsecret];
|
||||
services.logind.extraConfig = ''
|
||||
# don’t shutdown when power button is short-pressed
|
||||
HandlePowerKey=ignore
|
||||
'';
|
||||
}
|
||||
|
|
|
@ -5,10 +5,13 @@
|
|||
inputs,
|
||||
...
|
||||
}: {
|
||||
# imports = [ inputs.nix-gaming.nixosModules.default ];
|
||||
nix = {
|
||||
settings = {
|
||||
auto-optimise-store = true;
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
substituters = ["https://nix-gaming.cachix.org"];
|
||||
trusted-public-keys = ["nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="];
|
||||
};
|
||||
gc = {
|
||||
automatic = true;
|
||||
|
@ -16,15 +19,27 @@
|
|||
options = "--delete-older-than 7d";
|
||||
};
|
||||
};
|
||||
nixpkgs = {
|
||||
overlays = [
|
||||
inputs.nur.overlays.default
|
||||
];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
wget
|
||||
curl
|
||||
git
|
||||
ddcutil
|
||||
];
|
||||
|
||||
# For ddcutil brightness control
|
||||
boot.kernelModules = ["i2c-dev"];
|
||||
services.udev.extraRules = ''
|
||||
KERNEL=="i2c-[0-9]*", GROUP="i2c", MODE="0660"
|
||||
'';
|
||||
|
||||
time.timeZone = "Europe/Madrid";
|
||||
console.keyMap = "es";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
system.stateVersion = "24.05";
|
||||
}
|
||||
|
|
|
@ -39,7 +39,6 @@
|
|||
command = "uwsm start hyprland-uwsm.desktop";
|
||||
user = "${username}";
|
||||
};
|
||||
security.pam.services.greetd.enableGnomeKeyring = true;
|
||||
|
||||
environment.sessionVariables.XKB_DEFAULT_LAYOUT = "es";
|
||||
}
|
||||
|
|
27
modules/core/xserver.nix
Normal file
27
modules/core/xserver.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}: {
|
||||
services = {
|
||||
xserver = {
|
||||
enable = true;
|
||||
xkb.layout = "es,us";
|
||||
};
|
||||
|
||||
displayManager.autoLogin = {
|
||||
enable = true;
|
||||
user = "${username}";
|
||||
};
|
||||
libinput = {
|
||||
enable = true;
|
||||
# mouse = {
|
||||
# accelProfile = "flat";
|
||||
# };
|
||||
};
|
||||
};
|
||||
# To prevent getting stuck at shutdown
|
||||
systemd.extraConfig = "DefaultTimeoutStopSec=10s";
|
||||
|
||||
environment.systemPackages = [pkgs.xorg.xhost]; # GParted (and others) won't start if not installed
|
||||
}
|
|
@ -11,8 +11,7 @@
|
|||
++ [(import ./cava.nix)] # audio visualizer
|
||||
++ [(import ./cliphist.nix)] # clipboard
|
||||
++ [(import ./direnv.nix)]
|
||||
++ [(import ./discord.nix)]
|
||||
++ [(import ./distrobox.nix)]
|
||||
++ [(import ./discord.nix)] # discord with catppuccin theme
|
||||
++ [(import ./gpg.nix)] # GnuPG and its agent (gpg-agent)
|
||||
++ [(import ./fuzzel.nix)] # launcher
|
||||
++ [(import ./gaming.nix)] # packages related to gaming
|
||||
|
@ -22,7 +21,6 @@
|
|||
++ [(import ./kdeconnect.nix)]
|
||||
++ [(import ./kitty.nix)] # terminal
|
||||
++ [(import ./swaync)] # notification deamon
|
||||
++ [(import ./matrix.nix)] # Matrix clients
|
||||
++ [(import ./nemo.nix)] # File manager
|
||||
++ [(import ./nextcloud.nix)] # nextcloud client
|
||||
++ [(import ./nvim.nix)] # neovim editor
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
programs.distrobox = {
|
||||
enable = true;
|
||||
enableSystemdUnit = true;
|
||||
containers = {
|
||||
debian13 = {
|
||||
image = "debian:13";
|
||||
entry = false;
|
||||
additional_packages = "git";
|
||||
init_hooks = [
|
||||
"ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/docker"
|
||||
"ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/docker-compose"
|
||||
];
|
||||
};
|
||||
|
||||
kali = {
|
||||
image = "docker.io/kalilinux/kali-rolling:latest";
|
||||
entry = false;
|
||||
init_hooks = [
|
||||
"ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/docker"
|
||||
"ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/docker-compose"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [boxbuddy];
|
||||
}
|
|
@ -24,12 +24,17 @@
|
|||
vitetris
|
||||
nethack
|
||||
|
||||
## Celeste
|
||||
celeste-classic
|
||||
celeste-classic-pm
|
||||
|
||||
## Doom
|
||||
# gzdoom
|
||||
crispy-doom
|
||||
|
||||
## Emulation
|
||||
sameboy
|
||||
snes9x
|
||||
cemu
|
||||
dolphin-emu
|
||||
ryujinx
|
||||
|
|
|
@ -4,6 +4,14 @@
|
|||
...
|
||||
}: {
|
||||
fonts.fontconfig.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.noto
|
||||
|
||||
twemoji-color-font
|
||||
noto-fonts-emoji
|
||||
roboto
|
||||
];
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
|
298
modules/home/hyprland/config.nix
Normal file
298
modules/home/hyprland/config.nix
Normal file
|
@ -0,0 +1,298 @@
|
|||
{pkgs, ...}: {
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
# autostart
|
||||
exec-once = [
|
||||
"uwsm app -- nm-applet"
|
||||
"uwsm app -- wl-clip-persist --clipboard regular"
|
||||
"uwsm app -- bash -c 'if [ ! -f ~/.config/hypr/wallpaper.png ]; then wall-change ~/.config/hypr/default_wallpaper.png; fi'"
|
||||
"uwsm app -- swaybg -m fill -i ~/.config/hypr/wallpaper.png &"
|
||||
"uwsm app -- poweralertd"
|
||||
"uwsm app -- waybar"
|
||||
"uwsm app -- swaync"
|
||||
"uwsm app -- ckb-next -b"
|
||||
"uwsm app -- element-desktop --hidden"
|
||||
];
|
||||
|
||||
input = {
|
||||
kb_layout = "es,us";
|
||||
kb_options = "grp:alt_caps_toggle";
|
||||
numlock_by_default = true;
|
||||
follow_mouse = 1;
|
||||
sensitivity = 0;
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
};
|
||||
};
|
||||
|
||||
general = {
|
||||
"$mainMod" = "SUPER";
|
||||
layout = "dwindle";
|
||||
gaps_in = 0;
|
||||
gaps_out = 0;
|
||||
border_size = 2;
|
||||
# "col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
|
||||
# "col.inactive_border" = "0x00000000";
|
||||
# border_part_of_window = false;
|
||||
no_border_on_floating = false;
|
||||
};
|
||||
|
||||
misc = {
|
||||
disable_autoreload = true;
|
||||
disable_hyprland_logo = true;
|
||||
always_follow_on_dnd = true;
|
||||
layers_hog_keyboard_focus = true;
|
||||
animate_manual_resizes = false;
|
||||
enable_swallow = true;
|
||||
focus_on_activate = true;
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
force_split = 0;
|
||||
special_scale_factor = 1.0;
|
||||
split_width_multiplier = 1.0;
|
||||
use_active_for_splits = true;
|
||||
pseudotile = "yes";
|
||||
preserve_split = "yes";
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
special_scale_factor = 1;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 0;
|
||||
# active_opacity = 0.90;
|
||||
# inactive_opacity = 0.90;
|
||||
# fullscreen_opacity = 1.0;
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 1;
|
||||
passes = 1;
|
||||
# size = 4;
|
||||
# passes = 2;
|
||||
brightness = 1;
|
||||
contrast = 1.400;
|
||||
ignore_opacity = true;
|
||||
noise = 0;
|
||||
new_optimizations = true;
|
||||
xray = false;
|
||||
};
|
||||
|
||||
shadow = {
|
||||
enabled = true;
|
||||
|
||||
ignore_window = true;
|
||||
offset = "0 2";
|
||||
range = 20;
|
||||
render_power = 3;
|
||||
# color = "rgba(00000055)";
|
||||
};
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
|
||||
bezier = [
|
||||
"fluent_decel, 0, 0.2, 0.4, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutCubic, 0.33, 1, 0.68, 1"
|
||||
"easeinoutsine, 0.37, 0, 0.63, 1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
# Windows
|
||||
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
|
||||
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
|
||||
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
|
||||
|
||||
# Fade
|
||||
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
|
||||
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
|
||||
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
|
||||
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
|
||||
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
|
||||
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
|
||||
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
|
||||
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
|
||||
];
|
||||
};
|
||||
|
||||
bind =
|
||||
[
|
||||
# show keybinds list
|
||||
"$mainMod, F1, exec, show-keybinds"
|
||||
|
||||
# keybindings
|
||||
"$mainMod, Return, exec, uwsm app -- kitty"
|
||||
"ALT, Return, exec, uwsm app -- kitty --title float_kitty"
|
||||
"$mainMod SHIFT, Return, exec, uwsm app -- kitty --start-as=fullscreen -o 'font_size=16'"
|
||||
"$mainMod, B, exec, uwsm app -- librewolf"
|
||||
"$mainMod, N, exec, uwsm app -- swaync-client -t"
|
||||
"$mainMod SHIFT, N, exec, uwsm app -- swaync-client -d"
|
||||
"$mainMod SHIFT, Q, killactive,"
|
||||
"$mainMod, F, fullscreen, 0"
|
||||
"$mainMod SHIFT, F, fullscreen, 1"
|
||||
"$mainMod, Space, togglefloating,"
|
||||
"$mainMod, D, exec, uwsm app -- fuzzel"
|
||||
"$mainMod SHIFT, E, exec, uwsm app -- bemoji -n"
|
||||
"$mainMod, M, exec, uwsm app -- element-desktop"
|
||||
"$mainMod, Y, exec, uwsm app -- kitty spotify_player"
|
||||
"$mainMod, X, exec, uwsm app -- rofi-rbw"
|
||||
"$mainMod, Escape, exec, uwsm app -- loginctl lock-session"
|
||||
"$mainMod SHIFT, Escape, exec, uwsm app -- shutdown-script"
|
||||
"$mainMod, P, pseudo,"
|
||||
"$mainMod SHIFT, P, togglesplit,"
|
||||
"$mainMod, E, exec, uwsm app -- nemo"
|
||||
"$mainMod SHIFT, B, exec, uwsm app -- pkill -SIGUSR1 .waybar-wrapped"
|
||||
"$mainMod, C ,exec, uwsm app -- hyprpicker -a"
|
||||
"$mainMod, W,exec, uwsm app -- wallpaper-picker"
|
||||
|
||||
# screenshot
|
||||
"$mainMod, Print, exec, uwsm app -- screenshot-menu"
|
||||
",Print, exec, uwsm app -- grimblast --notify --freeze copy area"
|
||||
]
|
||||
++ (
|
||||
# workspaces
|
||||
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
||||
builtins.concatLists (
|
||||
builtins.genList (
|
||||
x: let
|
||||
ws = let
|
||||
c = (x + 1) / 10;
|
||||
in
|
||||
builtins.toString (x + 1 - (c * 10));
|
||||
in [
|
||||
"$mainMod, ${ws}, workspace, ${toString (x + 1)}"
|
||||
"$mainMod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}"
|
||||
]
|
||||
)
|
||||
10
|
||||
)
|
||||
)
|
||||
++ [
|
||||
"$mainMod CTRL, c, workspace, emptynm"
|
||||
"$mainMod SHIFT, c, movetoworkspace, emptynm"
|
||||
]
|
||||
++ (
|
||||
# Window focus, movement and control
|
||||
builtins.concatLists (
|
||||
let
|
||||
keys = ["H" "L" "K" "J"];
|
||||
directions = ["l" "r" "u" "d"];
|
||||
resize = toString 80; # Change this to change how much a window resizes each keypress
|
||||
resize_list = ["-${resize} 0" "${resize} 0" "0 -${resize}" "0 ${resize}"];
|
||||
in
|
||||
builtins.genList (
|
||||
x: let
|
||||
k = builtins.elemAt keys x;
|
||||
d = builtins.elemAt directions x;
|
||||
r = builtins.elemAt resize_list x;
|
||||
in [
|
||||
"$mainMod, ${k}, movefocus, ${d}"
|
||||
"$mainMod SHIFT, ${k}, movewindow, ${d}"
|
||||
"$mainMod CTRL, ${k}, resizeactive, ${r}"
|
||||
"$mainMod ALT, ${k}, moveactive, ${r}"
|
||||
]
|
||||
)
|
||||
4
|
||||
)
|
||||
)
|
||||
++ [
|
||||
"$mainMod, mouse_down, workspace, e-1"
|
||||
"$mainMod, mouse_up, workspace, e+1"
|
||||
|
||||
# laptop brigthness
|
||||
",XF86MonBrightnessUp, exec, brightnessctl set 5%+"
|
||||
",XF86MonBrightnessDown, exec, brightnessctl set 5%-"
|
||||
"$mainMod, XF86MonBrightnessUp, exec, brightnessctl set 100%+"
|
||||
"$mainMod, XF86MonBrightnessDown, exec, brightnessctl set 100%-"
|
||||
|
||||
# clipboard manager
|
||||
"$mainMod, V, exec, cliphist list | fuzzel --dmenu --prompt '📋 ' | cliphist decode | wl-copy"
|
||||
];
|
||||
|
||||
# Bindings that work when locked
|
||||
bindl = [
|
||||
# media and volume controls
|
||||
",XF86AudioRaiseVolume,exec, pamixer -i 2"
|
||||
",XF86AudioLowerVolume,exec, pamixer -d 2"
|
||||
",XF86AudioMute,exec, pamixer -t"
|
||||
",XF86AudioPlay,exec, playerctl play-pause"
|
||||
",XF86AudioNext,exec, playerctl next"
|
||||
",XF86AudioPrev,exec, playerctl previous"
|
||||
",XF86AudioStop, exec, playerctl stop"
|
||||
];
|
||||
|
||||
# mouse binding
|
||||
bindm = [
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
# windowrule
|
||||
windowrule = [
|
||||
"float,class:vimiv"
|
||||
"center,class:vimiv"
|
||||
"float,class:mpv"
|
||||
"center,class:mpv"
|
||||
"size 1200 725,class:mpv"
|
||||
"float,title:^(float_kitty)$"
|
||||
"center,title:^(float_kitty)$"
|
||||
"size 950 600,title:^(float_kitty)$"
|
||||
"tile, class:neovide"
|
||||
"idleinhibit focus,class:mpv"
|
||||
"float,class:udiskie"
|
||||
"float,title:^(Volume Control)$"
|
||||
"float,title:^(Firefox — Sharing Indicator)$"
|
||||
"move 0 0,title:^(Firefox — Sharing Indicator)$"
|
||||
"size 700 450,title:^(Volume Control)$"
|
||||
"move 40 55%,title:^(Volume Control)$"
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"opacity 1.0 override 1.0 override, title:^(Picture-in-Picture)$"
|
||||
"pin, title:^(Picture-in-Picture)$"
|
||||
"opacity 1.0 override 1.0 override, class:(Aseprite)"
|
||||
"opacity 1.0 override 1.0 override, class:(Unity)"
|
||||
"idleinhibit focus, class:^(mpv)$"
|
||||
"idleinhibit fullscreen, class:^(firefox)$"
|
||||
"float,class:^(zenity)$"
|
||||
"center,class:^(zenity)$"
|
||||
"size 850 500,class:^(zenity)$"
|
||||
"float,class:^(pavucontrol)$"
|
||||
"float,class:^(.sameboy-wrapped)$"
|
||||
"float,class:^(file_progress)$"
|
||||
"float,class:^(confirm)$"
|
||||
"float,class:^(dialog)$"
|
||||
"float,class:^(download)$"
|
||||
"float,class:^(notification)$"
|
||||
"float,class:^(error)$"
|
||||
"float,class:^(confirmreset)$"
|
||||
"float,title:^(Open File)$"
|
||||
"float,title:^(branchdialog)$"
|
||||
"float,title:^(Confirm to replace files)$"
|
||||
"float,title:^(File Operation Progress)$"
|
||||
|
||||
"opacity 0.0 override,class:^(xwaylandvideobridge)$"
|
||||
"noanim,class:^(xwaylandvideobridge)$"
|
||||
"noinitialfocus,class:^(xwaylandvideobridge)$"
|
||||
"maxsize 1 1,class:^(xwaylandvideobridge)$"
|
||||
"noblur,class:^(xwaylandvideobridge)$"
|
||||
];
|
||||
|
||||
monitor = [
|
||||
",preferred,auto,1"
|
||||
];
|
||||
|
||||
xwayland = {
|
||||
force_zero_scaling = true;
|
||||
};
|
||||
|
||||
gestures = {
|
||||
workspace_swipe = true;
|
||||
workspace_swipe_direction_lock = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
{...}: {
|
||||
imports =
|
||||
[(import ./hyprland.nix)]
|
||||
++ [(import ./config.nix)]
|
||||
++ [(import ./hyprlock.nix)]
|
||||
++ [(import ./hypridle.nix)]
|
||||
++ [(import ./variables.nix)];
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [
|
||||
# swww
|
||||
swaybg
|
||||
inputs.hypr-contrib.packages.${pkgs.system}.grimblast
|
||||
hyprpicker
|
||||
|
@ -14,9 +15,7 @@
|
|||
glib
|
||||
wayland
|
||||
];
|
||||
|
||||
services.hyprpolkitagent.enable = true;
|
||||
|
||||
systemd.user.targets.hyprland-session.Unit.Wants = ["xdg-desktop-autostart.target"];
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
xwayland = {
|
||||
|
@ -25,306 +24,7 @@
|
|||
};
|
||||
# enableNvidiaPatches = false;
|
||||
systemd.enable = false;
|
||||
|
||||
settings = let
|
||||
app_menu = "${pkgs.fuzzel}/bin/fuzzel";
|
||||
in {
|
||||
# autostart
|
||||
exec-once = [
|
||||
"uwsm app -- nm-applet"
|
||||
"uwsm app -- wl-clip-persist --clipboard regular"
|
||||
"uwsm app -- bash -c 'if [ ! -f ~/.config/hypr/wallpaper.png ]; then wall-change ~/.config/hypr/default_wallpaper.png; fi'"
|
||||
"uwsm app -- swaybg -m fill -i ~/.config/hypr/wallpaper.png &"
|
||||
"uwsm app -- ${pkgs.poweralertd}/bin/poweralertd"
|
||||
"uwsm app -- waybar"
|
||||
"uwsm app -- swaync"
|
||||
"uwsm app -- ckb-next -b"
|
||||
"uwsm app -- element-desktop --hidden"
|
||||
];
|
||||
|
||||
input = {
|
||||
kb_layout = "es,us";
|
||||
kb_options = "grp:alt_caps_toggle";
|
||||
numlock_by_default = true;
|
||||
follow_mouse = 1;
|
||||
sensitivity = 0;
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
};
|
||||
};
|
||||
|
||||
general = {
|
||||
"$mainMod" = "SUPER";
|
||||
layout = "dwindle";
|
||||
gaps_in = 0;
|
||||
gaps_out = 0;
|
||||
border_size = 2;
|
||||
# "col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
|
||||
# "col.inactive_border" = "0x00000000";
|
||||
# border_part_of_window = false;
|
||||
no_border_on_floating = false;
|
||||
};
|
||||
|
||||
misc = {
|
||||
disable_autoreload = true;
|
||||
disable_hyprland_logo = true;
|
||||
always_follow_on_dnd = true;
|
||||
layers_hog_keyboard_focus = true;
|
||||
animate_manual_resizes = false;
|
||||
enable_swallow = true;
|
||||
focus_on_activate = true;
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
force_split = 0;
|
||||
special_scale_factor = 1.0;
|
||||
split_width_multiplier = 1.0;
|
||||
use_active_for_splits = true;
|
||||
pseudotile = "yes";
|
||||
preserve_split = "yes";
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
special_scale_factor = 1;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 0;
|
||||
# active_opacity = 0.90;
|
||||
# inactive_opacity = 0.90;
|
||||
# fullscreen_opacity = 1.0;
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 1;
|
||||
passes = 1;
|
||||
# size = 4;
|
||||
# passes = 2;
|
||||
brightness = 1;
|
||||
contrast = 1.400;
|
||||
ignore_opacity = true;
|
||||
noise = 0;
|
||||
new_optimizations = true;
|
||||
xray = false;
|
||||
};
|
||||
|
||||
shadow = {
|
||||
enabled = true;
|
||||
|
||||
ignore_window = true;
|
||||
offset = "0 2";
|
||||
range = 20;
|
||||
render_power = 3;
|
||||
# color = "rgba(00000055)";
|
||||
};
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
|
||||
bezier = [
|
||||
"fluent_decel, 0, 0.2, 0.4, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutCubic, 0.33, 1, 0.68, 1"
|
||||
"easeinoutsine, 0.37, 0, 0.63, 1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
# Windows
|
||||
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
|
||||
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
|
||||
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
|
||||
|
||||
# Fade
|
||||
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
|
||||
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
|
||||
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
|
||||
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
|
||||
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
|
||||
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
|
||||
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
|
||||
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
|
||||
];
|
||||
};
|
||||
|
||||
bind =
|
||||
[
|
||||
# show keybinds list
|
||||
"$mainMod, F1, exec, show-keybinds"
|
||||
|
||||
# keybindings
|
||||
"$mainMod, Return, exec, uwsm app -- kitty"
|
||||
"ALT, Return, exec, uwsm app -- kitty --title float_kitty"
|
||||
"$mainMod SHIFT, Return, exec, uwsm app -- kitty --start-as=fullscreen -o 'font_size=16'"
|
||||
"$mainMod, B, exec, uwsm app -- librewolf"
|
||||
"$mainMod, N, exec, uwsm app -- swaync-client -t"
|
||||
"$mainMod SHIFT, N, exec, uwsm app -- swaync-client -d"
|
||||
"$mainMod SHIFT, Q, killactive,"
|
||||
"$mainMod, F, fullscreen, 0"
|
||||
"$mainMod SHIFT, F, fullscreen, 1"
|
||||
"$mainMod, Space, togglefloating,"
|
||||
"$mainMod, D, exec, uwsm app -- ${app_menu}"
|
||||
"$mainMod SHIFT, E, exec, uwsm app -- bemoji -n"
|
||||
"$mainMod, M, exec, uwsm app -- element-desktop"
|
||||
"$mainMod, Y, exec, uwsm app -- kitty spotify_player"
|
||||
"$mainMod, X, exec, uwsm app -- rofi-rbw"
|
||||
"$mainMod, Escape, exec, uwsm app -- loginctl lock-session"
|
||||
"$mainMod SHIFT, Escape, exec, uwsm app -- shutdown-script"
|
||||
"$mainMod, P, pseudo,"
|
||||
"$mainMod SHIFT, P, togglesplit,"
|
||||
"$mainMod, E, exec, uwsm app -- nemo"
|
||||
"$mainMod SHIFT, B, exec, uwsm app -- pkill -SIGUSR1 .waybar-wrapped"
|
||||
"$mainMod, C ,exec, uwsm app -- hyprpicker -a"
|
||||
"$mainMod, W,exec, uwsm app -- wallpaper-picker"
|
||||
|
||||
# screenshot
|
||||
"$mainMod, Print, exec, uwsm app -- screenshot-menu"
|
||||
",Print, exec, uwsm app -- grimblast --notify --freeze copy area"
|
||||
]
|
||||
++ (
|
||||
# workspaces
|
||||
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
||||
builtins.concatLists (
|
||||
builtins.genList (
|
||||
x: let
|
||||
ws = let
|
||||
c = (x + 1) / 10;
|
||||
in
|
||||
builtins.toString (x + 1 - (c * 10));
|
||||
in [
|
||||
"$mainMod, ${ws}, workspace, ${toString (x + 1)}"
|
||||
"$mainMod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}"
|
||||
]
|
||||
)
|
||||
10
|
||||
)
|
||||
)
|
||||
++ [
|
||||
"$mainMod CTRL, c, workspace, emptynm"
|
||||
"$mainMod SHIFT, c, movetoworkspace, emptynm"
|
||||
]
|
||||
++ (
|
||||
# Window focus, movement and control
|
||||
builtins.concatLists (
|
||||
let
|
||||
keys = ["H" "L" "K" "J"];
|
||||
directions = ["l" "r" "u" "d"];
|
||||
resize = toString 80; # Change this to change how much a window resizes each keypress
|
||||
resize_list = ["-${resize} 0" "${resize} 0" "0 -${resize}" "0 ${resize}"];
|
||||
in
|
||||
builtins.genList (
|
||||
x: let
|
||||
k = builtins.elemAt keys x;
|
||||
d = builtins.elemAt directions x;
|
||||
r = builtins.elemAt resize_list x;
|
||||
in [
|
||||
"$mainMod, ${k}, movefocus, ${d}"
|
||||
"$mainMod SHIFT, ${k}, movewindow, ${d}"
|
||||
"$mainMod CTRL, ${k}, resizeactive, ${r}"
|
||||
"$mainMod ALT, ${k}, moveactive, ${r}"
|
||||
]
|
||||
)
|
||||
4
|
||||
)
|
||||
)
|
||||
++ [
|
||||
"$mainMod, mouse_down, workspace, e-1"
|
||||
"$mainMod, mouse_up, workspace, e+1"
|
||||
|
||||
# laptop brigthness
|
||||
",XF86MonBrightnessUp, exec, brightnessctl set 5%+"
|
||||
",XF86MonBrightnessDown, exec, brightnessctl set 5%-"
|
||||
"$mainMod, XF86MonBrightnessUp, exec, brightnessctl set 100%+"
|
||||
"$mainMod, XF86MonBrightnessDown, exec, brightnessctl set 100%-"
|
||||
|
||||
# clipboard manager
|
||||
"$mainMod, V, exec, cliphist list | fuzzel --dmenu --prompt '📋 ' | cliphist decode | wl-copy"
|
||||
];
|
||||
|
||||
# Bindings that work when locked
|
||||
bindl = [
|
||||
# media and volume controls
|
||||
",XF86AudioRaiseVolume,exec, pamixer -i 2"
|
||||
",XF86AudioLowerVolume,exec, pamixer -d 2"
|
||||
",XF86AudioMute,exec, pamixer -t"
|
||||
",XF86AudioPlay,exec, playerctl play-pause"
|
||||
",XF86AudioNext,exec, playerctl next"
|
||||
",XF86AudioPrev,exec, playerctl previous"
|
||||
",XF86AudioStop, exec, playerctl stop"
|
||||
];
|
||||
|
||||
# mouse binding
|
||||
bindm = [
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
# windowrule
|
||||
windowrule = [
|
||||
"float,class:vimiv"
|
||||
"center,class:vimiv"
|
||||
"float,class:mpv"
|
||||
"center,class:mpv"
|
||||
"size 1200 725,class:mpv"
|
||||
"float,title:^(float_kitty)$"
|
||||
"center,title:^(float_kitty)$"
|
||||
"size 950 600,title:^(float_kitty)$"
|
||||
"tile, class:neovide"
|
||||
"idleinhibit focus,class:mpv"
|
||||
"float,class:udiskie"
|
||||
"float,title:^(Volume Control)$"
|
||||
"float,title:^(Firefox — Sharing Indicator)$"
|
||||
"move 0 0,title:^(Firefox — Sharing Indicator)$"
|
||||
"size 700 450,title:^(Volume Control)$"
|
||||
"move 40 55%,title:^(Volume Control)$"
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"opacity 1.0 override 1.0 override, title:^(Picture-in-Picture)$"
|
||||
"pin, title:^(Picture-in-Picture)$"
|
||||
"opacity 1.0 override 1.0 override, class:(Aseprite)"
|
||||
"opacity 1.0 override 1.0 override, class:(Unity)"
|
||||
"idleinhibit focus, class:^(mpv)$"
|
||||
"idleinhibit fullscreen, class:^(firefox)$"
|
||||
"float,class:^(zenity)$"
|
||||
"center,class:^(zenity)$"
|
||||
"size 850 500,class:^(zenity)$"
|
||||
"float,class:^(pavucontrol)$"
|
||||
"float,class:^(.sameboy-wrapped)$"
|
||||
"float,class:^(file_progress)$"
|
||||
"float,class:^(confirm)$"
|
||||
"float,class:^(dialog)$"
|
||||
"float,class:^(download)$"
|
||||
"float,class:^(notification)$"
|
||||
"float,class:^(error)$"
|
||||
"float,class:^(confirmreset)$"
|
||||
"float,title:^(Open File)$"
|
||||
"float,title:^(branchdialog)$"
|
||||
"float,title:^(Confirm to replace files)$"
|
||||
"float,title:^(File Operation Progress)$"
|
||||
|
||||
"opacity 0.0 override,class:^(xwaylandvideobridge)$"
|
||||
"noanim,class:^(xwaylandvideobridge)$"
|
||||
"noinitialfocus,class:^(xwaylandvideobridge)$"
|
||||
"maxsize 1 1,class:^(xwaylandvideobridge)$"
|
||||
"noblur,class:^(xwaylandvideobridge)$"
|
||||
];
|
||||
|
||||
monitor = [
|
||||
",preferred,auto,1"
|
||||
];
|
||||
|
||||
xwayland = {
|
||||
force_zero_scaling = true;
|
||||
};
|
||||
|
||||
gestures = {
|
||||
workspace_swipe = true;
|
||||
workspace_swipe_direction_lock = false;
|
||||
};
|
||||
ecosystem = {
|
||||
no_update_news = true;
|
||||
no_donation_nag = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.hyprpolkitagent.enable = true;
|
||||
}
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
programs.element-desktop.enable = true;
|
||||
home.packages = with pkgs; [fractal];
|
||||
}
|
|
@ -17,62 +17,82 @@
|
|||
}) ["mp4" "x-matroska" "webm"]);
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# CLI utils
|
||||
bitwarden-cli
|
||||
file # Show file information
|
||||
gtrash # rm replacement, put deleted files in system trash
|
||||
imagemagick
|
||||
lazygit # Simple terminal UI for git commands
|
||||
jq # command-line JSON processor
|
||||
nitch # neofetch-like util
|
||||
tdf # cli pdf viewer
|
||||
todo # cli todo list
|
||||
yazi # terminal file manager
|
||||
yt-dlp
|
||||
wtype # xdotool type for wayland
|
||||
caligula # TUI for disk imaging
|
||||
ffmpeg
|
||||
killall
|
||||
man-pages # extra man pages
|
||||
openssl
|
||||
pamixer # pulseaudio command line mixer
|
||||
playerctl # controller for media players
|
||||
wl-clipboard # clipboard utils for wayland (wl-copy, wl-paste)
|
||||
unzip
|
||||
wget
|
||||
usbutils
|
||||
gotify-cli
|
||||
|
||||
#GUI Utils
|
||||
file-roller # Archive manager
|
||||
wdisplays # Configuring displays in Wayland compositors
|
||||
bemoji # emoji picker
|
||||
pavucontrol # pulseaudio volume controle (GUI)
|
||||
|
||||
# GUI Apps
|
||||
bitwise # cli tool for bit / hex manipulation
|
||||
bitwarden-cli
|
||||
distrobox
|
||||
boxbuddy
|
||||
evince # gnome pdf viewer
|
||||
eza # cool ls
|
||||
element-desktop # Matrix client
|
||||
fd # find replacement
|
||||
file # Show file information
|
||||
file-roller # Archive manager
|
||||
freetube # YouTube client
|
||||
thunderbird
|
||||
vlc
|
||||
mpv # video player
|
||||
xournalpp # For notes and pdf editing
|
||||
qbittorrent # torrent client
|
||||
speedcrunch # Fast power user calculator
|
||||
simple-scan
|
||||
orca-slicer
|
||||
kdePackages.okular # KDE's pdf viewer/editor (supports digital signing)
|
||||
inkscape
|
||||
kdePackages.kleopatra # GPG GUI
|
||||
fzf # fuzzy finder
|
||||
gimp
|
||||
gnome-text-editor
|
||||
gparted # partition manager
|
||||
vimiv-qt # Image viewer, vim-like
|
||||
gtrash # rm replacement, put deleted files in system trash
|
||||
imagemagick
|
||||
inkscape
|
||||
kdePackages.kleopatra # Gpg GUI
|
||||
lazygit
|
||||
jq
|
||||
nitch # systhem fetch util
|
||||
nix-prefetch-github
|
||||
kdePackages.okular # KDE's pdf viewer/editor (supports digital signing)
|
||||
simple-scan
|
||||
orca-slicer
|
||||
tdf # cli pdf viewer
|
||||
speedcrunch
|
||||
thunderbird
|
||||
todo # cli todo list
|
||||
toipe # typing test in the terminal
|
||||
transmission_4-gtk # torrent client
|
||||
vlc
|
||||
xournalpp # For notes and pdf editing
|
||||
yazi # terminal file manager
|
||||
yt-dlp
|
||||
zenity
|
||||
wdisplays
|
||||
wireguard-tools
|
||||
wtype
|
||||
|
||||
# Wine stuff
|
||||
winetricks
|
||||
wineWowPackages.wayland
|
||||
bottles
|
||||
|
||||
# C / C++
|
||||
gcc
|
||||
gnumake
|
||||
|
||||
# Python
|
||||
python3
|
||||
|
||||
cmatrix
|
||||
caligula
|
||||
gparted # partition manager
|
||||
ffmpeg
|
||||
vimiv-qt # Image viewer, vim-like
|
||||
killall
|
||||
libnotify
|
||||
man-pages # extra man pages
|
||||
mpv # video player
|
||||
openssl
|
||||
pamixer # pulseaudio command line mixer
|
||||
pavucontrol # pulseaudio volume controle (GUI)
|
||||
playerctl # controller for media players
|
||||
wl-clipboard # clipboard utils for wayland (wl-copy, wl-paste)
|
||||
poweralertd
|
||||
qalculate-gtk # calculator
|
||||
unzip
|
||||
wget
|
||||
xdg-utils
|
||||
xxd
|
||||
alejandra
|
||||
usbutils
|
||||
|
||||
# VPN
|
||||
wireguard-tools
|
||||
openconnect
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
fceumm
|
||||
gambatte
|
||||
mgba
|
||||
snes9x
|
||||
]))
|
||||
];
|
||||
}
|
||||
|
|
|
@ -14,7 +14,9 @@
|
|||
# python
|
||||
ms-python.python
|
||||
ms-python.black-formatter
|
||||
# OCaml
|
||||
# C/C++
|
||||
ms-vscode.cpptools
|
||||
# OCaml
|
||||
ocamllabs.ocaml-platform
|
||||
# CMake
|
||||
ms-vscode.cmake-tools
|
||||
|
|
|
@ -5,26 +5,36 @@
|
|||
host,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [fzf git];
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = ["git" "fzf"];
|
||||
};
|
||||
|
||||
shellAliases = {
|
||||
# record = "wf-recorder --audio=alsa_output.pci-0000_08_00.6.analog-stereo.monitor -f $HOME/Videos/$(date +'%Y%m%d%H%M%S_1.mp4')";
|
||||
|
||||
# Utils
|
||||
c = "clear";
|
||||
cd = "z";
|
||||
tt = "gtrash put";
|
||||
cat = "bat";
|
||||
nano = "micro";
|
||||
code = "codium";
|
||||
py = "python";
|
||||
icat = "kitten icat";
|
||||
dsize = "du -hs";
|
||||
findw = "grep -rl";
|
||||
pdf = "tdf";
|
||||
open = "xdg-open";
|
||||
find = "fd";
|
||||
|
||||
l = "eza --icons -a --group-directories-first -1"; #EZA_ICON_SPACING=2
|
||||
ll = "eza --icons -a --group-directories-first -1 --no-user --long";
|
||||
tree = "eza --icons --tree --group-directories-first";
|
||||
|
||||
# Nixos
|
||||
cdnix = "cd ~/nixos-config && codium ~/nixos-config";
|
||||
|
@ -61,7 +71,8 @@
|
|||
|
||||
# ssh
|
||||
s = "kitten ssh";
|
||||
kssh = "kitten ssh";
|
||||
ssh = "kitten ssh";
|
||||
ossh = "ssh";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue