1
0
Fork 0

Switch to Hyprland

This commit is contained in:
Avery 2025-01-11 22:52:22 +01:00
parent 009a965200
commit 8e42dc2420
Signed by: Avery
GPG key ID: B684FD451B692E04
9 changed files with 352 additions and 39 deletions

View file

@ -5,12 +5,13 @@ import {
graphics_card_usage,
volume_widget,
} from "./widgets/bar/system-stats.js";
import { extended_bar } from "./widgets/bar-extended/extended-bar.js";
// import { extended_bar } from "./widgets/bar-extended/extended-bar.js";
import { launcher } from "./widgets/launcher/launcher.js";
import { popup_clock } from "./widgets/popup-clock/popup-clock.js";
import { date } from "./state.js";
const mpris = await Service.import("mpris");
const sway = await Service.import("sway");
// const sway = await Service.import("sway");
const hyprland = await Service.import("hyprland");
const players = mpris.bind("players");
App.addIcons(`${App.configDir}/assets`);
@ -23,20 +24,8 @@ function Workspaces() {
class_name: "workspace-button",
label: i.toString(),
setup: (btn) => {
btn.hook(
sway,
(btn) => {
const ws = sway.getWorkspace(`${i}`);
btn.toggleClassName(
"occupied",
ws?.nodes.length + ws?.floating_nodes.length > 0,
);
},
"notify::workspaces",
);
btn.hook(sway.active.workspace, (btn) => {
btn.toggleClassName("active", sway.active.workspace.name == i);
btn.bind("prop", hyprland.active.workspace, "id", (id) => {
btn.toggleClassName("active", id == i);
});
},
});
@ -161,5 +150,5 @@ Utils.monitorFile(
App.config({
style: "./style.css",
windows: [bar, extended_bar, launcher, popup_clock],
windows: [bar, launcher, popup_clock],
});

View file

@ -1,4 +1,4 @@
@define-color bg-bar rgba(0, 0, 0, 0.1);
@define-color bg-bar rgba(0, 0, 0, 0.3);
@define-color bg rgba(0, 0, 0, 0.0);
@define-color normal rgba(0, 0, 0, 0.6);
@define-color hover rgba(0, 0, 0, 0.4);

View file

@ -5,6 +5,7 @@
./dunst.nix
./firefox.nix
./gtk.nix
./hypr
./kitty.nix
./sway.nix
./qt.nix
@ -38,6 +39,10 @@
qdiskinfo
mangohud
heroic
ungoogled-chromium
mediainfo-gui
android-tools
mitmproxy
];
};
nixpkgs.config.allowUnfree = true;

View file

@ -0,0 +1 @@
{ ... }: { imports = [ ./hyprland.nix ./hyprlock.nix ]; }

View file

@ -0,0 +1,171 @@
{ ... }: {
wayland.windowManager.hyprland = {
enable = true;
settings = {
monitor = "DP-1, 2560x1440@165, 0x0, 1";
input = {
# Keyboard
kb_layout = "es";
kb_variant = "dvorak";
kb_options = "lv5:caps_switch";
# Mouse
sensitivity = -0.4;
accel_profile = "flat";
};
exec-once =
[ "hyprlock" "ags" "swww-daemon" "[workspace 10 silent] qbittorrent" ];
env = [
"XDG_CURRENT_DESKTOP,Hyprland"
"XDG_SESSION_TYPE,wayland"
"XDG_SESSION_DESKTOP,Hyprland"
];
general = {
border_size = 0;
gaps_in = 4;
gaps_out = 4;
};
decoration = {
rounding = 8;
dim_inactive = true;
dim_strength = 0.4;
blur = {
enabled = true;
size = 4;
passes = 3;
};
shadow.enabled = false;
};
animations = {
animation = [
"windows, 1, 4, wind, slide"
"windowsIn, 1, 4, winIn, slide"
"windowsOut, 1, 3, winOut, slide"
"windowsMove, 1, 3, wind, slide"
"workspaces, 1, 2, default, slidevert"
];
bezier = [
"wind, 0.05, 0.92, 0.1, 1"
"winIn, 0.1, 1.1, 0.1, 1"
"winOut, 0.3, -0.3, 0, 1"
];
};
dwindle = {
pseudotile = true;
force_split = 2;
use_active_for_splits = true;
preserve_split = true;
};
bind = [
"SUPER SHIFT CTRL ALT, Q, exit,"
# Window management
"SUPER, W, killactive"
"SUPER, F, togglefloating, "
"SUPER, C, centerwindow"
"SUPER, F11, fullscreen, 0"
# Spawns
"CTRL ALT, T, exec, kitty"
"SUPER, Space, exec, ags -t launcher"
"SUPER, C, exec, ags -t bar_extended"
"SUPER, E, exec, pcmanfm-qt"
# Session locking
", code:191, exec, hyprlock"
"MOD3, L, exec, hyprlock"
# Window navigation
"SUPER, k, movefocus, u"
"SUPER, j, movefocus, d"
"SUPER, h, movefocus, l"
"SUPER, l, movefocus, r"
# Workspace navigation
"SUPER, 1, workspace, 1"
"SUPER, 2, workspace, 2"
"SUPER, 3, workspace, 3"
"SUPER, 4, workspace, 4"
"SUPER, 5, workspace, 5"
"SUPER, 6, workspace, 6"
"SUPER, 7, workspace, 7"
"SUPER, 8, workspace, 8"
"SUPER, 9, workspace, 9"
"SUPER, 0, workspace, 10"
# Send window to workspace
"SUPER SHIFT, 1, movetoworkspace, 1"
"SUPER SHIFT, 2, movetoworkspace, 2"
"SUPER SHIFT, 3, movetoworkspace, 3"
"SUPER SHIFT, 4, movetoworkspace, 4"
"SUPER SHIFT, 5, movetoworkspace, 5"
"SUPER SHIFT, 6, movetoworkspace, 6"
"SUPER SHIFT, 7, movetoworkspace, 7"
"SUPER SHIFT, 8, movetoworkspace, 8"
"SUPER SHIFT, 9, movetoworkspace, 9"
"SUPER SHIFT, 0, movetoworkspace, 10"
# Screenshots
", Print, exec, screenshot full"
"SHIFT, Print, exec, screenshot section"
"SUPER, S, exec, screenshot full"
"SUPER + SHIFT, S, exec, screenshot section"
];
bindl = [
# Submaps
"MOD3, m, submap, Música"
"MOD3, w, submap, Fondo de pantalla"
# Volume mute
", XF86AudioMute, exec, volumectl output toggle-mute"
"SHIFT, XF86AudioMute, exec, volumectl input toggle-mute"
];
bindle = [
# Volume control
", XF86AudioRaiseVolume, exec, volumectl output +5"
", XF86AudioLowerVolume, exec, volumectl output -5"
"SHIFT, XF86AudioRaiseVolume, exec, volumectl input +5"
"SHIFT, XF86AudioLowerVolume, exec, volumectl input -5"
];
bindm =
[ "SUPER, mouse:272, movewindow" "SUPER, mouse:273, resizewindow" ];
layerrule = [
"blur, bar"
"ignorezero, bar"
"blur, launcher"
"ignorezero, launcher"
"blur, extended_bar"
"ignorezero, extended_bar"
];
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
vrr = 2;
};
};
extraConfig = ''
submap = Fondo de pantalla
bind = , H, exec, change-wallpaper previous
bind = , L, exec, change-wallpaper next
bindl = , escape, submap, reset
bindl = MOD3, w, submap, reset
submap = reset
submap = Música
bindl = , p, exec, playerctl play-pause
bindl = , h, exec, playerctl previous
bindl = , l, exec, playerctl next
bindl = , escape, submap, reset
bindl = MOD3, m, submap, reset
submap = reset
'';
};
}

View file

@ -0,0 +1,65 @@
{ ... }: {
programs.hyprlock = {
enable = true;
settings = {
background = {
path = "$HOME/.local/share/wallpapers/.current_image";
blur_size = 4;
blur_passes = 3;
};
label = [
{
text = "$TIME";
color = "rgba(255, 255, 255, 1.0)";
font_size = 96;
position = "0, -90";
font_family = "Inter Medium";
halign = "center";
valign = "top";
}
{
text = ''cmd[update:1000] date "+%A, %-e de %B del %Y"'';
font_family = "Inter";
font_size = 20;
position = "0, -235";
halign = "center";
valign = "top";
}
{
text = "$DESC";
font_family = "Inter";
position = "0, -35";
font_size = 18;
halign = "center";
valign = "center";
}
];
image = {
size = "150, 150";
position = "0, 65";
path = "$HOME/.face.icon";
rounding = -1;
halign = "center";
valign = "center";
};
input-field = {
size = "300, 50";
outline_thickness = 0;
dots_size = 0.2;
dots_spacing = 0.15;
dots_center = true;
dots_rounding = -1;
fade_on_empty = false;
placeholder_text =
''<span color="##ffffffb7">Introduce la contraseña</span>'';
outer_color = "rgba(255, 255, 255, 0.5)";
inner_color = "rgba(255, 255, 255, 0.0)";
font_color = "rgba(255, 255, 255, 1.0)";
rounding = -1;
position = "0, -80";
halign = "center";
valign = "center";
};
};
};
}

View file

@ -17,7 +17,7 @@
"ctrl+alt+9" = "goto_tab 9";
};
settings = {
"background_opacity" = "0.8";
"background_opacity" = "0.85";
"dynamic_background_opacity" = true;
"force_ltr" = "yes";
"disable_ligatures" = "never";

View file

@ -29,7 +29,7 @@
networking = {
firewall = {
enable = true;
allowedTCPPorts = [ 8000 42595 1420 7777 ];
allowedTCPPorts = [ 8000 42595 1420 7777 8080 ];
allowedUDPPorts = [ 24642 ];
};
hostName = "totsugeki";
@ -38,7 +38,7 @@
};
time = {
hardwareClockInLocalTime = true;
hardwareClockInLocalTime = false;
timeZone = "Europe/Madrid";
};
@ -79,28 +79,15 @@
};
dconf.enable = true;
nix-ld.enable = true;
hyprland.enable = true;
};
security.polkit = { enable = true; };
xdg.portal = {
config.common = {
default = "gtk";
"org.freedesktop.impl.portal.ScreenCast" = "wlr";
};
config.common = { default = "gtk"; };
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
wlr = {
enable = true;
settings = {
screencast = {
output_name = "DP-1";
max_fps = 165;
chooser_type = "simple";
chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or";
};
};
};
};
services = {
@ -109,6 +96,16 @@
nssmdns4 = true;
openFirewall = true;
};
greetd = {
enable = true;
settings = rec {
initial_session = {
command = "${pkgs.zsh}/bin/zsh -c Hyprland";
user = "avery";
};
default_session = initial_session;
};
};
gvfs.enable = true;
jellyfin = {
enable = true;
@ -129,6 +126,92 @@
udisks2.enable = true;
udev.extraRules = ''
SUBSYSTEM=="usb", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="3000", MODE="0666"
# Atmel DFU
### ATmega16U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", TAG+="uaccess"
### ATmega32U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess"
### ATmega16U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", TAG+="uaccess"
### ATmega32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess"
### AT90USB64
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", TAG+="uaccess"
### AT90USB162
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", TAG+="uaccess"
### AT90USB128
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess"
# Input Club
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess"
# STM32duino
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess"
# STM32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
# BootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess"
# USBAspLoader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess"
# USBtinyISP
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1782", ATTRS{idProduct}=="0c9f", TAG+="uaccess"
# ModemManager should ignore the following devices
# Atmel SAM-BA (Massdrop)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
# Caterina (Pro Micro)
## pid.codes shared PID
### Keyboardio Atreus 2 Bootloader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2302", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Spark Fun Electronics
### Pro Micro 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Pro Micro 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### LilyPad 3V3/8MHz (and some Pro Micro clones)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Pololu Electronics
### A-Star 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Arduino SA
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Adafruit Industries LLC
### Feather 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## dog hunter AG
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
# hid_listen
KERNEL=="hidraw*", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl"
# hid bootloaders
## QMK HID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2067", TAG+="uaccess"
## PJRC's HalfKay
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0478", TAG+="uaccess"
# APM32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="314b", ATTRS{idProduct}=="0106", TAG+="uaccess"
# GD32V DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", TAG+="uaccess"
# WB32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess"
'';
};
systemd = { services = { NetworkManager-wait-online.enable = false; }; };
@ -139,7 +222,6 @@
};
virtualisation.virtualbox.host.enable = true;
system.stateVersion = "24.05";
users.users.avery.extraGroups = [ "corectrl" ];

View file

@ -6,7 +6,7 @@
options = [ "compress=zstd:15" ];
};
"/boot" = {
device = "/dev/disk/by-uuid/8084-F762";
device = "/dev/disk/by-uuid/590B-73B7";
fsType = "vfat";
};
"/home" = {