mirror of
https://github.com/eRgo35/nix-config.git
synced 2026-02-04 08:36:11 +01:00
BREAKING-CHANGE: changed nixpkgs to stable 24.11 + structure change + fmt
This commit is contained in:
8
home-manager/system/dunst.nix
Normal file
8
home-manager/system/dunst.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [libnotify];
|
||||
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
package = pkgs.dunst;
|
||||
};
|
||||
}
|
||||
11
home-manager/system/hypr.nix
Normal file
11
home-manager/system/hypr.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
hostname,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [
|
||||
hypr
|
||||
];
|
||||
}
|
||||
789
home-manager/system/hyprland.nix
Normal file
789
home-manager/system/hyprland.nix
Normal file
@@ -0,0 +1,789 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
hostname,
|
||||
...
|
||||
}: {
|
||||
# ------------------------------------------------
|
||||
# Needed Packages
|
||||
# ------------------------------------------------
|
||||
|
||||
home.packages = with pkgs; [
|
||||
qt6ct
|
||||
qt6.qtwayland
|
||||
|
||||
hyprshot
|
||||
hyprshade
|
||||
hyprpicker
|
||||
|
||||
inputs.hyprsunset.packages."${pkgs.system}".hyprsunset
|
||||
inputs.hyprsysteminfo.packages."${pkgs.system}".hyprsysteminfo
|
||||
inputs.hyprpolkitagent.packages."${pkgs.system}".hyprpolkitagent
|
||||
|
||||
xdg-desktop-portal-hyprland
|
||||
|
||||
wev
|
||||
wlr-randr
|
||||
wdisplays
|
||||
wl-clipboard
|
||||
# wl-copy
|
||||
# wl-paste
|
||||
# wf-recorder
|
||||
# wl-screenrec
|
||||
|
||||
playerctl
|
||||
brightnessctl
|
||||
];
|
||||
|
||||
# ------------------------------------------------
|
||||
# Hyprland Config
|
||||
# ------------------------------------------------
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
xwayland.enable = true;
|
||||
package = inputs.hyprland.packages."${pkgs.system}".hyprland;
|
||||
|
||||
plugins = [
|
||||
inputs.split-monitor-workspaces.packages."${pkgs.system}".split-monitor-workspaces
|
||||
];
|
||||
|
||||
# ------------------------------------------------
|
||||
# Configuration
|
||||
# ------------------------------------------------
|
||||
|
||||
# settings = {
|
||||
|
||||
# "$mod" = "SUPER";
|
||||
# "$shiftMod" = "SUPER_SHIFT";
|
||||
# "$Alt_L" = "ALT";
|
||||
|
||||
# # App
|
||||
# "$terminal" = "kitty";
|
||||
# "$browser" = "firefox";
|
||||
# "$launcher" = "rofi -show drun";
|
||||
# "$file-manager" = "nemo";
|
||||
# "$Tfile-manager" = "$terminal -e yazi";
|
||||
# "$audio-manager" = "com.saivert.pwvucontrol";
|
||||
# "$password-manager" = "org.keepassxc.KeePassXC";
|
||||
# "$bluetooth-manager" = "io.github.kaii_lb.Overskride";
|
||||
|
||||
# # ------------------------------------------------
|
||||
# # Envirronement variables
|
||||
# # ------------------------------------------------
|
||||
|
||||
# env = [
|
||||
# "XDG_SESSION_TYPE,wayland"
|
||||
# "XDG_CURRENT_DESKTOP,Hyprland"
|
||||
# "XDG_SESSION_DESKTOP,Hyprland"
|
||||
|
||||
# "DISABLE_QT5_COMPAT,1"
|
||||
# "QT_QPA_PLATFORM,wayland"
|
||||
# "QT_AUTO_SCREEN_SCALE_FACTOR,1"
|
||||
# "QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||
|
||||
# "NIXOS_OZONE_WL,1"
|
||||
# "ELECTRON_OZONE_PLATFORM_HINT,auto"
|
||||
|
||||
# "GTK_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||
# ];
|
||||
|
||||
# # ------------------------------------------------
|
||||
# # Startup
|
||||
# # ------------------------------------------------
|
||||
|
||||
# exec-once = [
|
||||
# "waybar"
|
||||
# # "systemctl --user start hyprpolkitagent"
|
||||
# ];
|
||||
|
||||
# # ------------------------------------------------
|
||||
# # Monitors
|
||||
# # ------------------------------------------------
|
||||
|
||||
# monitor = [
|
||||
# "HDMI-A-1, preferred, 0x360, 1"
|
||||
# "DP-1, highrr, 4480x0, 1"
|
||||
# "DP-2, highrr, 1920x0, 1"
|
||||
# ];
|
||||
|
||||
# # ------------------------------------------------
|
||||
# # Window Rules
|
||||
# # ------------------------------------------------
|
||||
|
||||
# windowrule = [
|
||||
# "float, ^($terminal)$"
|
||||
# "size 45% 45%,^($terminal)$"
|
||||
|
||||
# "float, ^($password-manager)$"
|
||||
# "size 50% 40%,^($password-manager)$"
|
||||
|
||||
# "float, ^($bluetooth-manager)$"
|
||||
# "size 50% 60%,^($bluetooth-manager)$"
|
||||
|
||||
# "float, ^($audio-manager)$"
|
||||
# "size 50% 30%,^($audio-manager)$"
|
||||
|
||||
# "noblur, class:^(steam)"
|
||||
# "forcergbx, class:^(steam)"
|
||||
# ];
|
||||
|
||||
# # ------------------------------------------------
|
||||
# # Keybidings
|
||||
# # ------------------------------------------------
|
||||
|
||||
# bind = [
|
||||
# # Apps
|
||||
# "ALT, code:10, exec, $browser"
|
||||
# "ALT, code:11, exec, $file-manager"
|
||||
# "ALT, code:12, exec, $Tfile-manager"
|
||||
|
||||
# # System
|
||||
# "SUPER, RETURN, exec, $terminal"
|
||||
# "SUPER, X, exec, powermenu"
|
||||
# "SUPER, R, exec, $launcher"
|
||||
|
||||
# "SUPER, Q, killactive"
|
||||
# "SUPER, F, fullscreen"
|
||||
# "SUPER, T, togglefloating"
|
||||
|
||||
# # Screenshot
|
||||
# "ALT, S , exec , hyprshot -m region --clipboard-only"
|
||||
# "CONTROL&ALT , S , exec , hyprshot -m region "
|
||||
# "CONTROL&ALT&SHIFT_L , S , exec , hyprshot -m output"
|
||||
|
||||
# # Window Focus
|
||||
# "SUPER, h, movefocus, l"
|
||||
# "SUPER, l, movefocus, r"
|
||||
# "SUPER, k, movefocus, u"
|
||||
# "SUPER, j, movefocus, d"
|
||||
|
||||
# # Switch workspaces with mainMod + [0-9]
|
||||
# "SUPER, code:10, workspace, 1"
|
||||
# "SUPER, code:11, workspace, 2"
|
||||
# "SUPER, code:12, workspace, 3"
|
||||
# "SUPER, code:13, workspace, 4"
|
||||
# "SUPER, code:14, workspace, 5"
|
||||
# "SUPER, code:15, workspace, 6"
|
||||
# "SUPER, code:16, workspace, 7"
|
||||
# "SUPER, code:17, workspace, 8"
|
||||
# "SUPER, code:18, workspace, 9"
|
||||
# "SUPER, code:19, workspace, 10"
|
||||
|
||||
# # Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
# "SUPER SHIFT, code:10, movetoworkspace, 1"
|
||||
# "SUPER SHIFT, code:11, movetoworkspace, 2"
|
||||
# "SUPER SHIFT, code:12, movetoworkspace, 3"
|
||||
# "SUPER SHIFT, code:13, movetoworkspace, 4"
|
||||
# "SUPER SHIFT, code:14, movetoworkspace, 5"
|
||||
# "SUPER SHIFT, code:15, movetoworkspace, 6"
|
||||
# "SUPER SHIFT, code:16, movetoworkspace, 7"
|
||||
# "SUPER SHIFT, code:17, movetoworkspace, 8"
|
||||
# "SUPER SHIFT, code:18, movetoworkspace, 9"
|
||||
# "SUPER SHIFT, code:19, movetoworkspace, 10"
|
||||
# ];
|
||||
|
||||
# bindm = [
|
||||
# "SUPER, mouse:272, movewindow"
|
||||
# "SUPER, mouse:273, resizewindow"
|
||||
# ];
|
||||
|
||||
# bindl = [
|
||||
# ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
# ",switch:Lid Switch, exec, pidof hyprlock || hyprlock"
|
||||
# ];
|
||||
|
||||
# bindle = [
|
||||
# ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ -l 1"
|
||||
# ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
|
||||
|
||||
# ", XF86AudioPlay , exec , playerctl play-pause"
|
||||
# ", XF86AudioStop , exec , playerctl pause"
|
||||
# ", XF86AudioPrev , exec , playerctl previous"
|
||||
# ", XF86AudioNext , exec , playerctl next"
|
||||
|
||||
# ", XF86MonBrightnessUp, exec, brightnessctl -q s 5%+"
|
||||
# ", XF86MonBrightnessDown, exec, brightnessctl -q s 5%-"
|
||||
# ];
|
||||
|
||||
# # ------------------------------------------------
|
||||
# # Sections
|
||||
# # ------------------------------------------------
|
||||
|
||||
# xwayland = { enabled = false; };
|
||||
# opengl = { force_introspection = 1; };
|
||||
|
||||
# animations = { enabled = false; };
|
||||
# decoration = { drop_shadow = false; blur = { enabled = false; }; };
|
||||
|
||||
# general = {
|
||||
# gaps_in = 4;
|
||||
# gaps_out = 0;
|
||||
# border_size = 2;
|
||||
# "col.active_border" = "rgb(F5A97F) rgb(ED8796) rgb(C6A0F6) rgb(8AADF4) rgb(A6DA95) rgb(EED49F)";
|
||||
|
||||
# layout = "dwindle";
|
||||
# };
|
||||
|
||||
# misc = {
|
||||
# vfr = true;
|
||||
# vrr = 1;
|
||||
|
||||
# focus_on_activate = true;
|
||||
|
||||
# disable_autoreload = true;
|
||||
# disable_hyprland_logo = true;
|
||||
# disable_splash_rendering = true;
|
||||
# };
|
||||
|
||||
# input = {
|
||||
# kb_layout = "us";
|
||||
# kb_variant = "";
|
||||
|
||||
# follow_mouse = 1;
|
||||
# accel_profile = "flat";
|
||||
# sensitivity = 0.4;
|
||||
# repeat_delay = 300;
|
||||
# repeat_rate = 50;
|
||||
|
||||
# touchpad = {
|
||||
# natural_scroll = true;
|
||||
# clickfinger_behavior = true;
|
||||
# disable_while_typing = true;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
extraConfig = ''
|
||||
# This is an example Hyprland config file.
|
||||
# Refer to the wiki for more information.
|
||||
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
|
||||
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
|
||||
# You can split this configuration into multiple files
|
||||
# Create your files separately and then link them to this file like this:
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=, preferred, auto, 1
|
||||
monitor=HDMI-A-1, preferred, 0x360, 1
|
||||
monitor=DP-1, highrr, 4480x0, 1
|
||||
monitor=DP-2, highrr, 1920x0, 1
|
||||
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = kitty
|
||||
$fileManager = nemo
|
||||
$menu = rofi -show drun
|
||||
$lock = pidof hyprlock || hyprlock
|
||||
$editor = zed
|
||||
$browser = zen-browser
|
||||
$picker = hyprpicker -a -f hex
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
|
||||
# exec-once = hyprpm reload -n
|
||||
exec-once = hypridle
|
||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
# exec-once=zsh $HOME/.config/hypr/autostart.sh
|
||||
exec-once = waybar
|
||||
# exec-once = keepassxc
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = XCURSOR_THEME,/usr/share/icons/Gruvbox-Dark/index.theme
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_THEME,/usr/share/icons/Gruvbox-Dark/index.theme
|
||||
|
||||
env = CLUTTER_BACKEND,wayland
|
||||
env = GDK_BACKEND,wayland,x11
|
||||
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
|
||||
env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||
env = QT_QPA_PLATFORMTHEME,qt6ct
|
||||
env = QT_SCALE_FACTOR,1
|
||||
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||
|
||||
# Nvidia
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = GBM_BACKEND,nvidia-drm
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
env = WLR_NO_HARDWARE_CURSORS,1
|
||||
env = __NV_PRIME_RENDER_OFFLOAD,1
|
||||
env = __VK_LAYER_NV_optimus,NVIDIA_only
|
||||
env = __GL_THREADED_OPTIMIZATIONS,0
|
||||
|
||||
# Wayland enforce
|
||||
env = QT_QPA_PLATFORM,wayland
|
||||
# env = QT_QPA_PLATFORM,wayland;xcb
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
|
||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
|
||||
# Java
|
||||
env = _JAVA_AWT_WM_NONREPARENTING,1
|
||||
env = _JAVA_OPTIONS,-Dawt.useSystemAAFontSettings=on
|
||||
|
||||
# Firefox
|
||||
env = MOZ_ENABLE_WAYLAND,1
|
||||
env = MOZ_DISABLE_RDD_SANDBOX,1
|
||||
env = EGL_PLATFORM,wayland
|
||||
|
||||
# Electron
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,auto
|
||||
|
||||
# Input
|
||||
env = QT_IM_MODULE,fcitx
|
||||
env = XMODIFIERS=@im=fcitx
|
||||
env = GLFW_IM_MODULE,ibus
|
||||
|
||||
# SSH Agents
|
||||
env = SSH_AUTH_SOCK,$XDG_RUNTIME_DIR/ssh-agent.socket
|
||||
|
||||
env = NIXOS_OZONE_WL,1
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 10
|
||||
gaps_out = 20
|
||||
|
||||
border_size = 1
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col.active_border = rgba(fabd2fee) rgba(fe8019ee) 45deg
|
||||
col.inactive_border = rgba(928374aa)
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 10
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 0.98
|
||||
inactive_opacity = 0.95
|
||||
|
||||
# drop_shadow = true
|
||||
# shadow_range = 5
|
||||
# shadow_render_power = 3
|
||||
# col.shadow = rgba(1a1a1aee)
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = true
|
||||
size = 4
|
||||
passes = 3
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
|
||||
cursor {
|
||||
no_hardware_cursors = true
|
||||
inactive_timeout = 5
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = true
|
||||
|
||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = pl
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
numlock_by_default = true
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
workspace_swipe = false
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
# device {
|
||||
# name = epic-mouse-v1
|
||||
# sensitivity = -0.5
|
||||
# }
|
||||
|
||||
###############
|
||||
### PLUGINS ###
|
||||
###############
|
||||
|
||||
plugin {
|
||||
split-monitor-workspaces {
|
||||
count = 10
|
||||
keep_focused = 1
|
||||
enable_notifications = 0
|
||||
}
|
||||
}
|
||||
|
||||
##############
|
||||
### RENDER ###
|
||||
##############
|
||||
|
||||
render {
|
||||
explicit_sync = 1
|
||||
}
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
####################
|
||||
### KEYBINDINGSS ###
|
||||
####################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod SHIFT, RETURN, exec, $terminal
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = $mainMod SHIFT, Q, exit
|
||||
bind = $mainMod, N, exec, $fileManager
|
||||
bind = $mainMod, W, exec, $editor
|
||||
bind = $mainMod, Z, exec, $terminal
|
||||
bind = $mainMod, B, exec, $browser
|
||||
bind = $mainMod SHIFT, L, exec, $lock
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, R, exec, $menu
|
||||
bind = $mainMod, SPACE, exec, $menu
|
||||
bind = $mainMod SHIFT, C, exec, $picker
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
bind = $mainMod, F, fullscreen, 1
|
||||
bind = $mainMod SHIFT, F, fullscreen, 0
|
||||
bind = $mainMod, T, togglefloating
|
||||
bind = $mainMod, mouse:274, togglefloating
|
||||
|
||||
# Super Rat Binds
|
||||
bind = , mouse:277, exec, amixer set Master playback 2%+
|
||||
bind = , mouse:278, exec, amixer set Master playback 2%-
|
||||
# bind = , mouse:279, exec,
|
||||
bind = , mouse:280, exec, amixer set Capture toggle
|
||||
|
||||
# Move focus with mainMod + vim keys
|
||||
bind = $mainMod, H, movefocus, l
|
||||
bind = $mainMod, L, movefocus, r
|
||||
bind = $mainMod, K, movefocus, u
|
||||
bind = $mainMod, J, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, split-workspace, 1
|
||||
bind = $mainMod, 2, split-workspace, 2
|
||||
bind = $mainMod, 3, split-workspace, 3
|
||||
bind = $mainMod, 4, split-workspace, 4
|
||||
bind = $mainMod, 5, split-workspace, 5
|
||||
bind = $mainMod, 6, split-workspace, 6
|
||||
bind = $mainMod, 7, split-workspace, 7
|
||||
bind = $mainMod, 8, split-workspace, 8
|
||||
bind = $mainMod, 9, split-workspace, 9
|
||||
bind = $mainMod, 0, split-workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1
|
||||
bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2
|
||||
bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3
|
||||
bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4
|
||||
bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5
|
||||
bind = $mainMod SHIFT, 6, split-movetoworkspacesilent, 6
|
||||
bind = $mainMod SHIFT, 7, split-movetoworkspacesilent, 7
|
||||
bind = $mainMod SHIFT, 8, split-movetoworkspacesilent, 8
|
||||
bind = $mainMod SHIFT, 9, split-movetoworkspacesilent, 9
|
||||
bind = $mainMod SHIFT, 0, split-movetoworkspacesilent, 10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, D, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, D, movetoworkspace, special:magic
|
||||
|
||||
# Move between monitors
|
||||
bind = $mainMod, code:60, focusmonitor, -1 # code 60 is a dot (.)
|
||||
bind = $mainMod, code:59, focusmonitor, +1 # code 59 is a comma (,)
|
||||
# bind = $mainMod SHIFT, BackSpace, movewindow, mon:+1,
|
||||
# bind = $mainMod SHIFT, code:59, changemonitorsilent, e-1
|
||||
# bind = $mainMod SHIFT, code:60, changemonitorsilent, e+1
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
bind = ,XF86AudioMicMute, exec, amixer set Capture toggle
|
||||
bind = ,XF86AudioMute, exec, amixer set Master toggle
|
||||
bind = ,XF86AudioRaiseVolume, exec, amixer set Master playback 2%+
|
||||
bind = ,XF86AudioLowerVolume, exec, amixer set Master playback 2%-
|
||||
bind = ,XF86MonBrightnessUp, exec, brightnessctl set 5%+
|
||||
bind = ,XF86MonBrightnessDown, exec, brightnessctl set 5%-
|
||||
# bind =CTRL,XF86Launch2, exec, hyprctl keyword monitor "eDP-1,1920x1080@60,0x0,1"
|
||||
# bind = SHIFT,XF86Launch2, exec, hyprctl keyword monitor "eDP-1,1920x1080@60,0x0,1.5"
|
||||
bind = SHIFT, XF86MonBrightnessDown, exec, brightnessctl set 1%
|
||||
bind = SHIFT, XF86MonBrightnessUp, exec, brightnessctl set 100%
|
||||
|
||||
# Screenshot a window
|
||||
bind = $mainMod, PRINT, exec, hyprshot -m window
|
||||
# Screenshot a monitor
|
||||
bind = , PRINT, exec, hyprshot -m output
|
||||
# Screenshot a region
|
||||
bind = $mainMod SHIFT, S, exec, hyprshot -m region
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Example windowrule v1
|
||||
# windowrule = float, ^(kitty)$
|
||||
|
||||
windowrule=opacity 1.0 override 1.0, ^(firefox)$
|
||||
|
||||
# Example windowrule v2
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
|
||||
|
||||
windowrule=fullscreen, flameshot
|
||||
windowrule=float,flameshot
|
||||
windowrule=monitor 0,flameshot
|
||||
windowrule=move 0 0,flameshot
|
||||
windowrule=workspace 0,flameshot
|
||||
windowrule=stayfocused,flameshot
|
||||
|
||||
windowrulev2=move 0 -195,class:^(flameshot)$
|
||||
|
||||
windowrulev2 = opacity 0.0 override,class:^(xwaylandvideobridge)$
|
||||
windowrulev2 = noanim,class:^(xwaylandvideobridge)$
|
||||
windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$
|
||||
windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$
|
||||
windowrulev2 = noblur,class:^(xwaylandvideobridge)$
|
||||
'';
|
||||
};
|
||||
|
||||
#################################
|
||||
# Hyprpaper
|
||||
#################################
|
||||
services.hyprpaper = {
|
||||
enable = true;
|
||||
settings = {
|
||||
ipc = "off";
|
||||
splash = false;
|
||||
preload = ["~/.files/home/wallpapers/blockwavemoon.png"];
|
||||
wallpaper = [",~/.files/home/wallpapers/blockwavemoon.png"];
|
||||
};
|
||||
};
|
||||
|
||||
#################################
|
||||
# Hypridle
|
||||
#################################
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
general = {
|
||||
lock_cmd = "pidof hyprlock || hyprlock";
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
};
|
||||
|
||||
listener =
|
||||
if hostname == "zion"
|
||||
then [
|
||||
# {
|
||||
# timeout = 60;
|
||||
# on-timeout = "brightnessctl -sd asus::kbd_backlight set 0";
|
||||
# on-resume = "brightnessctl -rd asus::kbd_backlight";
|
||||
# }
|
||||
|
||||
# {
|
||||
# timeout = 80;
|
||||
# on-timeout = "brightnessctl -s set 0";
|
||||
# on-resume = "brightnessctl -r";
|
||||
# }
|
||||
|
||||
# {
|
||||
# timeout = 100;
|
||||
# on-timeout = "hyprctl dispatch dpms off ";
|
||||
# on-resume = "hyprctl dispatch dpms on";
|
||||
# }
|
||||
|
||||
# {
|
||||
# timeout = 150;
|
||||
# on-timeout = "systemctl suspend";
|
||||
# }
|
||||
{
|
||||
timeout = 300; # 5min
|
||||
on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
on-resume = "brightnessctl -r"; # monitor backlight restore.
|
||||
}
|
||||
|
||||
{
|
||||
timeout = 600; # 10min
|
||||
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
# {
|
||||
# timeout = 1800; # 30min
|
||||
# on-timeout = "systemctl hibernate";
|
||||
# on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
|
||||
# on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
|
||||
# }
|
||||
]
|
||||
else if hostname == "thor"
|
||||
then [
|
||||
{
|
||||
timeout = 450;
|
||||
on-timeout = "brightnessctl -s set 0";
|
||||
on-resume = "brightnessctl -r";
|
||||
}
|
||||
|
||||
{
|
||||
timeout = 600;
|
||||
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
{
|
||||
timeout = 750;
|
||||
on-timeout = "hyprctl dispatch dpms off ";
|
||||
on-resume = "hyprctl dispatch dpms on";
|
||||
}
|
||||
|
||||
{
|
||||
timeout = 900;
|
||||
on-timeout = "systemctl suspend";
|
||||
}
|
||||
|
||||
{
|
||||
timeout = 1500;
|
||||
on-timeout = "systemctl hibernate";
|
||||
}
|
||||
]
|
||||
else [];
|
||||
};
|
||||
};
|
||||
|
||||
#################################
|
||||
# Hyprlock
|
||||
#################################
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
|
||||
settings = lib.mkForce {
|
||||
general = {
|
||||
grace = 5;
|
||||
no_fade_in = true;
|
||||
no_fade_out = true;
|
||||
disable_loading_bar = false;
|
||||
};
|
||||
|
||||
background = {
|
||||
monitor = "";
|
||||
path = "~/.files/home/wallpapers/blockwavemoon.png";
|
||||
};
|
||||
|
||||
input-field = [
|
||||
{
|
||||
monitor = "";
|
||||
size = "200 , 50";
|
||||
outline_thickness = 7;
|
||||
|
||||
dots_size = 0.2;
|
||||
dots_spacing = 0.2;
|
||||
dots_center = true;
|
||||
|
||||
fade_on_empty = true;
|
||||
fade_timeout = "1000";
|
||||
|
||||
position = "0, -20";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
12
home-manager/system/rofi.nix
Normal file
12
home-manager/system/rofi.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
location = "center";
|
||||
theme = lib.mkForce ../configs/rose-pine.rasi;
|
||||
};
|
||||
}
|
||||
86
home-manager/system/stylix.nix
Normal file
86
home-manager/system/stylix.nix
Normal file
@@ -0,0 +1,86 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [inputs.stylix.homeManagerModules.stylix];
|
||||
|
||||
#qt = {
|
||||
# enable = false;
|
||||
# style.name = "gtk2";
|
||||
# platformTheme.name = "gtk";
|
||||
#};
|
||||
|
||||
gtk.iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
|
||||
stylix = {
|
||||
enable = true;
|
||||
autoEnable = true;
|
||||
|
||||
targets = {
|
||||
gnome.enable = true;
|
||||
gtk.enable = true;
|
||||
# foot.enable = false;
|
||||
wofi.enable = false;
|
||||
# tofi.enable = false;
|
||||
vscode.enable = false;
|
||||
waybar.enable = false;
|
||||
hyprland.enable = false;
|
||||
};
|
||||
|
||||
image = ../wallpapers/blockwavemoon.png;
|
||||
|
||||
override = {
|
||||
base00 = "191724";
|
||||
base01 = "1f1d2e";
|
||||
base02 = "26233a";
|
||||
base03 = "6e6a86";
|
||||
base04 = "908caa";
|
||||
base05 = "e0def4";
|
||||
base06 = "e0def4";
|
||||
base07 = "524f67";
|
||||
base08 = "eb6f92";
|
||||
base09 = "f6c177";
|
||||
base0A = "ebbcba";
|
||||
base0B = "31748f";
|
||||
base0C = "9ccfd8";
|
||||
base0D = "c4a7e7";
|
||||
base0E = "f6c177";
|
||||
base0F = "524f67";
|
||||
};
|
||||
|
||||
cursor = {
|
||||
size = 24;
|
||||
name = "Bibata-Modern-Ice";
|
||||
package = pkgs.bibata-cursors;
|
||||
};
|
||||
|
||||
fonts = {
|
||||
emoji = {
|
||||
package = pkgs.noto-fonts-emoji;
|
||||
name = "noto-fonts-color-emoji";
|
||||
};
|
||||
|
||||
monospace = {
|
||||
# package = pkgs.nerd-fonts.droid-sans-mono;
|
||||
package = pkgs.nerdfonts.override { fonts = [ "DroidSansMono" ]; };
|
||||
name = "DroidSansMono";
|
||||
};
|
||||
|
||||
sansSerif = {
|
||||
# package = pkgs.nerd-fonts.droid-sans-mono;
|
||||
package = pkgs.nerdfonts.override { fonts = [ "DroidSansMono" ]; };
|
||||
name = "DroidSansMono";
|
||||
};
|
||||
|
||||
serif = {
|
||||
# package = pkgs.nerd-fonts.droid-sans-mono;
|
||||
package = pkgs.nerdfonts.override { fonts = [ "DroidSansMono" ]; };
|
||||
name = "DroidSansMono";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
34
home-manager/system/theme.nix
Normal file
34
home-manager/system/theme.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
in {
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
style = {
|
||||
name = "kvantum";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
# "Kvantum/kvantum.kvconfig".text = ''
|
||||
# [General]
|
||||
# theme=GraphiteNordDark
|
||||
# '';
|
||||
|
||||
# "Kvantum/GraphiteNord".source = "${pkgs.graphite-kde-theme}/share/Kvantum/GraphiteNord";
|
||||
|
||||
"Kvantum/kvantum.kvconfig".text = ''
|
||||
[General]
|
||||
theme=rosepine-kvantum
|
||||
'';
|
||||
|
||||
"Kvantum/rosepine-kvantum".source = "${
|
||||
inputs.rosepine-kvantum.packages.${pkgs.system}.default
|
||||
}/share/Kvantum/rosepine-kvantum";
|
||||
# "Kvantum/rosepine".source = ../configs/Kvantum/rosepine-kvantum;
|
||||
};
|
||||
}
|
||||
35
home-manager/system/tofi.nix
Normal file
35
home-manager/system/tofi.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
programs.tofi = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# font
|
||||
font-size = 12;
|
||||
|
||||
# Window Style
|
||||
horizontal = true;
|
||||
anchor = "top";
|
||||
width = "100%";
|
||||
height = "15%";
|
||||
|
||||
result-spacing = 25;
|
||||
min-input-width = 120;
|
||||
|
||||
# Style
|
||||
padding-top = 0;
|
||||
padding-bottom = 0;
|
||||
padding-left = 0;
|
||||
padding-right = 0;
|
||||
|
||||
outline-width = 0;
|
||||
border-width = 0;
|
||||
|
||||
prompt-text = " ❯ ";
|
||||
num-results = 7;
|
||||
|
||||
text-color = "#cdd6f4";
|
||||
prompt-color = "#f38ba8";
|
||||
selection-color = "#f9e2af";
|
||||
background-color = "#1a1b26";
|
||||
};
|
||||
};
|
||||
}
|
||||
575
home-manager/system/waybar.nix
Normal file
575
home-manager/system/waybar.nix
Normal file
@@ -0,0 +1,575 @@
|
||||
{pkgs, ...}: {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
package = pkgs.waybar.overrideAttrs (oa: {mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];});
|
||||
|
||||
settings.mainBar = {
|
||||
layer = "top"; # Waybar at top layer
|
||||
height = 32; # Waybar height (to be removed for auto height)
|
||||
spacing = 0; # Gaps between modules (4px)
|
||||
position = "top";
|
||||
margin = "10 20 0";
|
||||
# Choose the order of the modules
|
||||
modules-left = [
|
||||
"hyprland/workspaces"
|
||||
"custom/media"
|
||||
];
|
||||
modules-center = ["hyprland/window"];
|
||||
modules-right = [
|
||||
"mpris"
|
||||
# "idle_inhibitor",
|
||||
"pulseaudio"
|
||||
# "network",
|
||||
"cpu"
|
||||
"memory"
|
||||
# "temperature",
|
||||
"backlight"
|
||||
# "keyboard-state",
|
||||
"battery"
|
||||
"clock"
|
||||
"tray"
|
||||
];
|
||||
# Modules configuration
|
||||
# sway/workspaces = {
|
||||
# "disable-scroll = true,
|
||||
# "all-outputs = true,
|
||||
# "warp-on-scroll = false,
|
||||
# "format = "{name}: {icon}",
|
||||
# "format-icons = {
|
||||
# "1 = "",
|
||||
# "2 = "",
|
||||
# "3 = "",
|
||||
# "4 = "",
|
||||
# "5 = "",
|
||||
# "urgent = "",
|
||||
# "focused = "",
|
||||
# "default = ""
|
||||
# }
|
||||
# },
|
||||
"hyprland/workspaces" = {
|
||||
active-only = false;
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
"1" = "一";
|
||||
"2" = "二";
|
||||
"3" = "三";
|
||||
"4" = "四";
|
||||
"5" = "五";
|
||||
"6" = "六";
|
||||
"7" = "七";
|
||||
"8" = "八";
|
||||
"9" = "九";
|
||||
"10" = "十";
|
||||
"11" = "一";
|
||||
"12" = "二";
|
||||
"13" = "三";
|
||||
"14" = "四";
|
||||
"15" = "五";
|
||||
"16" = "六";
|
||||
"17" = "七";
|
||||
"18" = "八";
|
||||
"19" = "九";
|
||||
"20" = "十";
|
||||
"21" = "一";
|
||||
"22" = "二";
|
||||
"23" = "三";
|
||||
"24" = "四";
|
||||
"25" = "五";
|
||||
"26" = "六";
|
||||
"27" = "七";
|
||||
"28" = "八";
|
||||
"29" = "九";
|
||||
"30" = "十";
|
||||
};
|
||||
on-scroll-up = "hyprctl dispatch workspace e+1";
|
||||
on-scroll-down = "hyprctl dispatch workspace e-1";
|
||||
persistent-workspaces = {
|
||||
HDMI-A-1 = [1 2 3 4 5 6 7 8 9 10];
|
||||
DP-1 = [11 12 13 14 15 16 17 18 19 20];
|
||||
DP-2 = [21 22 23 24 25 26 27 28 29 30];
|
||||
};
|
||||
};
|
||||
keyboard-state = {
|
||||
numlock = false;
|
||||
capslock = true;
|
||||
format = "{name} {icon}";
|
||||
format-icons = {
|
||||
locked = "";
|
||||
unlocked = "";
|
||||
};
|
||||
};
|
||||
"sway/mode" = {
|
||||
format = "<span style=\"italic\">{}</span>";
|
||||
};
|
||||
"sway/scratchpad" = {
|
||||
format = "{icon} {count}";
|
||||
show-empty = false;
|
||||
format-icons = ["" ""];
|
||||
tooltip = true;
|
||||
tooltip-format = "{app}: {title}";
|
||||
};
|
||||
mpris = {
|
||||
interval = 1;
|
||||
format = "{player_icon} {status_icon}";
|
||||
format-paused = "{player_icon} {status_icon}";
|
||||
tooltip-format = "{player_icon} {dynamic}";
|
||||
tooltip-format-paused = "{player_icon} {dynamic}";
|
||||
player-icons = {
|
||||
default = "";
|
||||
mpv = "";
|
||||
vlc = "";
|
||||
spotify = "";
|
||||
};
|
||||
status-icons = {
|
||||
playing = "";
|
||||
paused = "";
|
||||
stopped = "";
|
||||
};
|
||||
# "ignored-players = ["firefox"]
|
||||
};
|
||||
mpd = {
|
||||
format = "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ";
|
||||
format-disconnected = "Disconnected ";
|
||||
format-stopped = "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ";
|
||||
unknown-tag = "N/A";
|
||||
interval = 2;
|
||||
consume-icons = {
|
||||
on = " ";
|
||||
};
|
||||
random-icons = {
|
||||
off = "<span color=\"#f53c3c\"></span> ";
|
||||
on = " ";
|
||||
};
|
||||
repeat-icons = {
|
||||
on = " ";
|
||||
};
|
||||
single-icons = {
|
||||
on = "1 ";
|
||||
};
|
||||
state-icons = {
|
||||
paused = "";
|
||||
playing = "";
|
||||
};
|
||||
tooltip-format = "MPD (connected)";
|
||||
tooltip-format-disconnected = "MPD (disconnected)";
|
||||
};
|
||||
idle_inhibitor = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = "";
|
||||
deactivated = "";
|
||||
};
|
||||
};
|
||||
tray = {
|
||||
# "icon-size = 21,
|
||||
spacing = 10;
|
||||
show-passive-items = true;
|
||||
};
|
||||
clock = {
|
||||
format = "{:%b %d %I:%M %p}";
|
||||
tooltip-format = "<big>{:%d %B %Y}</big>\n<tt><small>{calendar}</small></tt>";
|
||||
format-alt = "{:%Y-%m-%d %I:%M %p}";
|
||||
};
|
||||
cpu = {
|
||||
format = "{usage}% ";
|
||||
tooltip = false;
|
||||
};
|
||||
memory = {
|
||||
format = "{}% ";
|
||||
};
|
||||
temperature = {
|
||||
# "thermal-zone = 2,
|
||||
# "hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input",
|
||||
critical-threshold = 80;
|
||||
# "format-critical = "{temperatureC}°C {icon}",
|
||||
format = "{temperatureC}°C {icon}";
|
||||
format-icons = ["" "" " "];
|
||||
};
|
||||
backlight = {
|
||||
# "device = "acpi_video1",
|
||||
format = "{percent}% {icon}";
|
||||
format-icons = ["" "" "" "" "" "" "" "" ""];
|
||||
};
|
||||
battery = {
|
||||
# bat = "BAT0";
|
||||
states = {
|
||||
good = 95;
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{capacity}% {icon}";
|
||||
format-charging = "{capacity}% ";
|
||||
format-plugged = "{capacity}% ";
|
||||
format-alt = "{time} {icon}";
|
||||
# "format-good = "", # An empty format will hide the module
|
||||
# "format-full = "",
|
||||
format-icons = ["" "" "" "" ""];
|
||||
interval = 10;
|
||||
weighted-average = true;
|
||||
};
|
||||
network = {
|
||||
# "interface = "wlp2*", # (Optional) To force the use of this interface
|
||||
format-wifi = "{essid} ({signalStrength}%) ";
|
||||
format-ethernet = "{ipaddr}/{cidr} ";
|
||||
tooltip-format = "{ifname} via {gwaddr} ";
|
||||
format-linked = "{ifname} (No IP) ";
|
||||
format-disconnected = "Disconnected ⚠";
|
||||
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
||||
on-click-right = "kitty nmtui";
|
||||
};
|
||||
pulseaudio = {
|
||||
# "scroll-step = 1, # %, can be a float
|
||||
format = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth-muted = " {icon} {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = " {volume}% ";
|
||||
format-source-muted = " ";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = ["" "" ""];
|
||||
};
|
||||
on-click = "pavucontrol";
|
||||
};
|
||||
"custom/media" = {
|
||||
format = "{icon} {}";
|
||||
return-type = "json";
|
||||
max-length = 40;
|
||||
format-icons = {
|
||||
spotify = "";
|
||||
default = "🎜";
|
||||
};
|
||||
escape = true;
|
||||
exec = "$HOME/.config/waybar/mediaplayer.py 2> /dev/null"; # Script in resources folder
|
||||
# exec = "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" # Filter player based on name
|
||||
};
|
||||
"custom/archicon" = {
|
||||
format = "";
|
||||
# "on-click":"nwg-menu -d -fm nemo -cmd-lock gtklock -va top",
|
||||
on-click = "jgmenu_run";
|
||||
tooltip = false;
|
||||
};
|
||||
};
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# CSS Styling
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
style = ''
|
||||
/*
|
||||
* Variant: Rosé Pine
|
||||
* Maintainer: DankChoir
|
||||
*/
|
||||
|
||||
@define-color base #191724;
|
||||
@define-color surface #1f1d2e;
|
||||
@define-color overlay #26233a;
|
||||
|
||||
@define-color muted #6e6a86;
|
||||
@define-color subtle #908caa;
|
||||
@define-color text #e0def4;
|
||||
|
||||
@define-color love #eb6f92;
|
||||
@define-color gold #f6c177;
|
||||
@define-color rose #ebbcba;
|
||||
@define-color pine #31748f;
|
||||
@define-color foam #9ccfd8;
|
||||
@define-color iris #c4a7e7;
|
||||
|
||||
@define-color highlightLow #21202e;
|
||||
@define-color highlightMed #403d52;
|
||||
@define-color highlightHigh #524f67;
|
||||
|
||||
* {
|
||||
font-family: "JetBrainsMono Nerd Font", FontAwesome, Roboto, Helvetica,
|
||||
Arial, sans-serif;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: @surface;
|
||||
color: @text;
|
||||
transition-property: background-color;
|
||||
transition-duration: 0.5s;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
/*
|
||||
window#waybar.empty {
|
||||
background-color: transparent;
|
||||
}
|
||||
window#waybar.solo {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
*/
|
||||
|
||||
/*window#waybar.termite {
|
||||
background-color: #3F3F3F;
|
||||
}
|
||||
window#waybar.chromium {
|
||||
background-color: #000000;
|
||||
border: none;
|
||||
}*/
|
||||
|
||||
#workspaces button {
|
||||
box-shadow: inset 0 -3px transparent;
|
||||
padding: 0 8px;
|
||||
background-color: @base;
|
||||
color: @text;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
#workspaces button:first-child {
|
||||
border-radius: 10px 0 0 10px;
|
||||
}
|
||||
|
||||
#workspaces button:last-child {
|
||||
border-radius: 0 10px 10px 0;
|
||||
}
|
||||
|
||||
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||
#workspaces button:hover {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
background-color: @overlay;
|
||||
/* box-shadow: inset 0 -100px 0 -97px @bright-yellow; */
|
||||
}
|
||||
|
||||
#workspaces button.empty {
|
||||
color: @muted;
|
||||
box-shadow: inherit;
|
||||
text-shadow: inherit;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: @gold;
|
||||
box-shadow: inset 0 -100px 0 -97px @bright-yellow;
|
||||
text-shadow: inherit;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background-color: @overlay;
|
||||
color: @text;
|
||||
/* box-shadow: inset 0 -100px 0 -97px @bright-yellow; */
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: @love;
|
||||
color: @base;
|
||||
}
|
||||
|
||||
#mode {
|
||||
background-color: @overlay;
|
||||
border-bottom: 3px solid @gold;
|
||||
}
|
||||
|
||||
#cava,
|
||||
#clock,
|
||||
#battery,
|
||||
#cpu,
|
||||
#memory,
|
||||
#disk,
|
||||
#temperature,
|
||||
#backlight,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#pulseaudio.muted,
|
||||
#pulseaudio.bluetooth,
|
||||
#wireplumber,
|
||||
#custom-media,
|
||||
#tray,
|
||||
#mpris,
|
||||
#keyboard-state,
|
||||
#mode,
|
||||
#battery,
|
||||
#idle_inhibitor,
|
||||
#scratchpad,
|
||||
#mpd {
|
||||
padding: 0 10px;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#window,
|
||||
#workspaces {
|
||||
margin: 0 4px;
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
.modules-right {
|
||||
background-color: @overlay;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* If workspaces is the leftmost module, omit left margin */
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* If workspaces is the rightmost module, omit right margin */
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#mpris {
|
||||
color: @gold;
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: @gold;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: @foam;
|
||||
}
|
||||
|
||||
#battery.charging,
|
||||
#battery.plugged {
|
||||
color: #d3869b;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #fbf1c7;
|
||||
color: #df3f71;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: #282828;
|
||||
color: #d3869b;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
label:focus {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
color: #458588;
|
||||
}
|
||||
|
||||
#temperature {
|
||||
color: #fabd2f;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
background-color: #fbf1c7;
|
||||
color: #b57614;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
color: @foam;
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: @iris;
|
||||
}
|
||||
|
||||
#network {
|
||||
color: @foam;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
background-color: @love;
|
||||
color: @base;
|
||||
}
|
||||
|
||||
/*#disk {
|
||||
background-color: #964B00;
|
||||
}*/
|
||||
|
||||
#pulseaudio,
|
||||
#pulseaudio.muted,
|
||||
#pulseaudio.bluetooth {
|
||||
color: @pine;
|
||||
}
|
||||
|
||||
#tray {
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
background-color: @love;
|
||||
color: @base;
|
||||
}
|
||||
|
||||
#idle_inhibitor {
|
||||
background-color: #282828;
|
||||
color: #ebdbb2;
|
||||
}
|
||||
|
||||
#idle_inhibitor.activated {
|
||||
background-color: #fbf1c7;
|
||||
color: #3c3836;
|
||||
}
|
||||
|
||||
#custom-media {
|
||||
background-color: #66cc99;
|
||||
color: #2a5c45;
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
#custom-media.custom-spotify {
|
||||
background-color: #66cc99;
|
||||
}
|
||||
|
||||
#custom-media.custom-vlc {
|
||||
background-color: #ffa000;
|
||||
}
|
||||
|
||||
#mpd {
|
||||
background-color: #66cc99;
|
||||
color: #2a5c45;
|
||||
}
|
||||
|
||||
#mpd.disconnected {
|
||||
background-color: #f53c3c;
|
||||
}
|
||||
|
||||
#mpd.stopped {
|
||||
background-color: #90b1b1;
|
||||
}
|
||||
|
||||
#mpd.paused {
|
||||
background-color: #51a37a;
|
||||
}
|
||||
|
||||
#language {
|
||||
background: #00b093;
|
||||
color: #740864;
|
||||
padding: 0 5px;
|
||||
margin: 0 5px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#keyboard-state {
|
||||
background: #97e1ad;
|
||||
color: #000000;
|
||||
padding: 0 0px;
|
||||
margin: 0 5px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#keyboard-state > label {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
#keyboard-state > label.locked {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
'';
|
||||
};
|
||||
}
|
||||
11
home-manager/system/wlsunset.nix
Normal file
11
home-manager/system/wlsunset.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
services.wlsunset = {
|
||||
enable = true;
|
||||
gamma = 0.8;
|
||||
|
||||
sunrise = "7:00";
|
||||
sunset = "21:00";
|
||||
|
||||
temperature.night = 4000;
|
||||
};
|
||||
}
|
||||
102
home-manager/system/wofi.nix
Normal file
102
home-manager/system/wofi.nix
Normal file
@@ -0,0 +1,102 @@
|
||||
{
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
settings = {
|
||||
allow_markup = true;
|
||||
width = 450;
|
||||
terminal = "foot";
|
||||
height = "305px";
|
||||
orientation = "vertical";
|
||||
halign = "fill";
|
||||
show = "drun";
|
||||
prompt = "Apps";
|
||||
normal_window = true;
|
||||
layer = "top";
|
||||
gtk_dark = true;
|
||||
line_wrap = "off";
|
||||
dynamic_lines = false;
|
||||
allow_images = true;
|
||||
image_size = 24;
|
||||
exec_search = false;
|
||||
hide_search = false;
|
||||
parse_search = false;
|
||||
insensitive = true;
|
||||
hide_scroll = true;
|
||||
no_actions = true;
|
||||
sort_order = "default";
|
||||
filter_rate = 100;
|
||||
key_expand = "Tab";
|
||||
key_exit = "Escape";
|
||||
};
|
||||
|
||||
style = ''
|
||||
/** ********** Fonts ********** **/
|
||||
|
||||
* {
|
||||
font-size: 14px;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: @theme_base_color;
|
||||
color: @theme_text_color;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#input {
|
||||
background-color: #181825;
|
||||
border: #313244;
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#inner-box {}
|
||||
|
||||
#img {
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
#text {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
#text:selected {
|
||||
color: #f5e0dc;
|
||||
}
|
||||
|
||||
#entry {
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-image: linear-gradient(
|
||||
to right,
|
||||
#F5A97F,
|
||||
#ED8796,
|
||||
#C6A0F6,
|
||||
#8AADF4,
|
||||
#A6DA95,
|
||||
#EED49F
|
||||
);
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
#unselected {}
|
||||
|
||||
#selected {}
|
||||
|
||||
#input,
|
||||
#entry:selected {
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user