Merge branch 'main' into containers
This commit is contained in:
commit
047940d0db
32 changed files with 1408 additions and 3212 deletions
42
dots/.config/fuzzel/fuzzel.ini.nix
Normal file
42
dots/.config/fuzzel/fuzzel.ini.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkIf mkEnableOption catppuccin;
|
||||||
|
cfg = config.horseman.dots.fuzzel;
|
||||||
|
username = config.horseman.username;
|
||||||
|
colors = config.horseman.catppuccin.colors;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
horseman.dots.fuzzel = {
|
||||||
|
enable = mkEnableOption "~/.config/fuzzel/fuzzel.ini";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home-manager.users.${username}.xdg.configFile."fuzzel/fuzzel.ini".text = ''
|
||||||
|
[colors]
|
||||||
|
background=${catppuccin.toHexNoHash colors.base}dd
|
||||||
|
text=${catppuccin.toHexNoHash colors.text}ff
|
||||||
|
prompt=${catppuccin.toHexNoHash colors.accent}ff
|
||||||
|
placeholder=${catppuccin.toHexNoHash colors.overlay1}ff
|
||||||
|
input=${catppuccin.toHexNoHash colors.text}ff
|
||||||
|
match=${catppuccin.toHexNoHash colors.accent}ff
|
||||||
|
selection=${catppuccin.toHexNoHash colors.surface2}ff
|
||||||
|
selection-text=${catppuccin.toHexNoHash colors.text}ff
|
||||||
|
selection-match=${catppuccin.toHexNoHash colors.accent}ff
|
||||||
|
counter=${catppuccin.toHexNoHash colors.overlay1}ff
|
||||||
|
border=${catppuccin.toHexNoHash colors.accent}ff
|
||||||
|
|
||||||
|
[main]
|
||||||
|
font=CaskaydiaCoveNerdFont:weight=semilight
|
||||||
|
terminal=kitty
|
||||||
|
|
||||||
|
|
||||||
|
[border]
|
||||||
|
width=2
|
||||||
|
selection-radius=3
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) mkIf mkEnableOption;
|
|
||||||
inherit (builtins) concatStringsSep;
|
|
||||||
|
|
||||||
cfg = config.horseman.dots.hypr.hypridle;
|
|
||||||
username = config.horseman.username;
|
|
||||||
hypr = config.horseman.wm.hyprland.config;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
horseman.dots.hypr.hypridle = {
|
|
||||||
enable = mkEnableOption "~/.config/hypr/hypridle.conf";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${username}.xdg.configFile."hypr/hypridle.conf".text = ''
|
|
||||||
general {
|
|
||||||
lock_cmd = ${hypr.sleep.lockCommand}
|
|
||||||
}
|
|
||||||
|
|
||||||
${concatStringsSep "\n\n" (map (lis: ''
|
|
||||||
listener {
|
|
||||||
timeout = ${toString lis.timeout}
|
|
||||||
on-timeout = ${lis.onTimeout}
|
|
||||||
on-resume = ${lis.onResume}
|
|
||||||
}
|
|
||||||
'')
|
|
||||||
hypr.sleep.listeners)}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,387 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) mkIf trivial strings mkEnableOption;
|
|
||||||
inherit (builtins) concatStringsSep elem genList elemAt length;
|
|
||||||
inherit (trivial) boolToString;
|
|
||||||
inherit (strings) floatToString;
|
|
||||||
|
|
||||||
cfg = config.horseman.dots.hypr.hyprland;
|
|
||||||
username = config.horseman.username;
|
|
||||||
hypr = config.horseman.wm.hyprland.config;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
horseman.dots.hypr.hyprland = {
|
|
||||||
enable = mkEnableOption "~/.config/hypr/hyprland.conf";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${username}.xdg.configFile."hypr/hyprland.conf".text = ''
|
|
||||||
${concatStringsSep "\n" (map (kb: "bind${concatStringsSep "" kb.flags} = ${concatStringsSep " " kb.mods}, ${kb.key}, ${kb.dispatcher}${
|
|
||||||
if (elem "m" kb.flags) # Mouse binds take one argument less
|
|
||||||
then ""
|
|
||||||
else ", ${kb.params}"
|
|
||||||
}")
|
|
||||||
hypr.keybindings.binds)}
|
|
||||||
|
|
||||||
${concatStringsSep "\n" (map (gs: toString gs) hypr.gestures.gestures)}
|
|
||||||
|
|
||||||
${concatStringsSep "\n\n" (map (sm: ''
|
|
||||||
bind${concatStringsSep "" sm.enterBind.flags} = ${concatStringsSep " " sm.enterBind.mods}, ${sm.enterBind.key}, submap, ${sm.name}
|
|
||||||
submap = ${sm.name}
|
|
||||||
|
|
||||||
${concatStringsSep "\n" (map (kb: "bind${concatStringsSep "" kb.flags} = ${concatStringsSep " " kb.mods}, ${kb.key}, ${kb.dispatcher}${
|
|
||||||
if (elem "m" kb.flags) # Mouse binds take one argument less
|
|
||||||
then ""
|
|
||||||
else ", ${kb.params}"
|
|
||||||
}")
|
|
||||||
sm.binds)}
|
|
||||||
|
|
||||||
bind${concatStringsSep "" sm.exitBind.flags} = ${concatStringsSep " " sm.exitBind.mods}, ${sm.exitBind.key}, submap, reset
|
|
||||||
submap = reset
|
|
||||||
'')
|
|
||||||
hypr.keybindings.submaps)}
|
|
||||||
|
|
||||||
${concatStringsSep "\n" (map (x: "exec-once = " + x) hypr.execOnce)}
|
|
||||||
|
|
||||||
${concatStringsSep "\n" (map (x: "env = " + x) hypr.env)}
|
|
||||||
|
|
||||||
general {
|
|
||||||
border_size = ${toString hypr.general.borderSize}
|
|
||||||
gaps_in = ${toString hypr.general.gapsIn}
|
|
||||||
gaps_out = ${toString hypr.general.gapsOut}
|
|
||||||
gaps_workspaces = ${toString hypr.general.gapsWorkspaces}
|
|
||||||
col.inactive_border = ${hypr.general.col.inactiveBorder}
|
|
||||||
col.active_border = ${hypr.general.col.activeBorder}
|
|
||||||
col.nogroup_border = ${hypr.general.col.nogroupBorder}
|
|
||||||
col.nogroup_border_active = ${hypr.general.col.nogroupBorderActive}
|
|
||||||
layout = ${hypr.general.layout}
|
|
||||||
no_focus_fallback = ${boolToString hypr.general.noFocusFallback}
|
|
||||||
resize_on_border = ${boolToString hypr.general.resizeOnBorder}
|
|
||||||
extend_border_grab_area = ${toString hypr.general.extendBorderGrabArea}
|
|
||||||
hover_icon_on_border = ${boolToString hypr.general.hoverIconOnBorder}
|
|
||||||
allow_tearing = ${boolToString hypr.general.allowTearing}
|
|
||||||
resize_corner = ${toString hypr.general.resizeCorner}
|
|
||||||
|
|
||||||
snap {
|
|
||||||
enabled = ${boolToString hypr.general.snap.enabled}
|
|
||||||
window_gap = ${toString hypr.general.snap.windowGap}
|
|
||||||
monitor_gap = ${toString hypr.general.snap.monitorGap}
|
|
||||||
border_overlap = ${boolToString hypr.general.snap.borderOverlap}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
decoration {
|
|
||||||
rounding = ${toString hypr.decoration.rounding}
|
|
||||||
rounding_power = ${toString hypr.decoration.roundingPower}
|
|
||||||
active_opacity = ${toString hypr.decoration.activeOpacity}
|
|
||||||
inactive_opacity = ${toString hypr.decoration.inactiveOpacity}
|
|
||||||
fullscreen_opacity = ${toString hypr.decoration.fullscreenOpacity}
|
|
||||||
dim_inactive = ${boolToString hypr.decoration.dimInactive}
|
|
||||||
dim_strength = ${toString hypr.decoration.dimStrength}
|
|
||||||
dim_special = ${toString hypr.decoration.dimSpecial}
|
|
||||||
dim_around = ${toString hypr.decoration.dimAround}
|
|
||||||
screen_shader = ${toString hypr.decoration.screenShader}
|
|
||||||
border_part_of_window = ${boolToString hypr.decoration.borderPartOfWindow}
|
|
||||||
|
|
||||||
blur {
|
|
||||||
enabled = ${boolToString hypr.decoration.blur.enabled}
|
|
||||||
size = ${toString hypr.decoration.blur.size}
|
|
||||||
passes = ${toString hypr.decoration.blur.passes}
|
|
||||||
ignore_opacity = ${boolToString hypr.decoration.blur.ignoreOpacity}
|
|
||||||
new_optimizations = ${boolToString hypr.decoration.blur.newOptimizations}
|
|
||||||
xray = ${boolToString hypr.decoration.blur.xray}
|
|
||||||
noise = ${toString hypr.decoration.blur.noise}
|
|
||||||
contrast = ${toString hypr.decoration.blur.contrast}
|
|
||||||
brightness = ${toString hypr.decoration.blur.brightness}
|
|
||||||
vibrancy = ${toString hypr.decoration.blur.vibrancy}
|
|
||||||
vibrancy_darkness = ${toString hypr.decoration.blur.vibrancyDarkness}
|
|
||||||
special = ${boolToString hypr.decoration.blur.special}
|
|
||||||
popups = ${boolToString hypr.decoration.blur.popups}
|
|
||||||
popups_ignorealpha = ${toString hypr.decoration.blur.popupsIgnorealpha}
|
|
||||||
input_methods = ${boolToString hypr.decoration.blur.inputMethods}
|
|
||||||
input_methods_ignorealpha = ${toString hypr.decoration.blur.inputMethodsIgnorealpha}
|
|
||||||
}
|
|
||||||
|
|
||||||
shadow {
|
|
||||||
enabled = ${boolToString hypr.decoration.shadow.enabled}
|
|
||||||
range = ${toString hypr.decoration.shadow.range}
|
|
||||||
render_power = ${toString hypr.decoration.shadow.renderPower}
|
|
||||||
sharp = ${boolToString hypr.decoration.shadow.sharp}
|
|
||||||
ignore_window = ${boolToString hypr.decoration.shadow.ignoreWindow}
|
|
||||||
color = ${toString hypr.decoration.shadow.color}
|
|
||||||
${
|
|
||||||
if (hypr.decoration.shadow.colorInactive == null)
|
|
||||||
then ""
|
|
||||||
else "color_inactive = ${toString hypr.decoration.shadow.colorInactive}"
|
|
||||||
}
|
|
||||||
offset = ${toString hypr.decoration.shadow.offset.x} ${toString hypr.decoration.shadow.offset.y}
|
|
||||||
scale = ${toString hypr.decoration.shadow.scale}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
animations {
|
|
||||||
enabled = ${boolToString hypr.animations.enabled}
|
|
||||||
workspace_wraparound = ${boolToString hypr.animations.workspaceWraparound}
|
|
||||||
|
|
||||||
${concatStringsSep "\n " (map (bez: "bezier = ${bez.name}, ${floatToString bez.startX}, ${floatToString bez.startY}, ${floatToString bez.endX}, ${floatToString bez.endY}") hypr.animations.beziers)}
|
|
||||||
|
|
||||||
${concatStringsSep "\n " (map (anim: "animation = ${anim.name}, ${toString anim.on}, ${floatToString anim.speed}, ${anim.curve}, ${anim.style}") hypr.animations.animations)}
|
|
||||||
}
|
|
||||||
|
|
||||||
input {
|
|
||||||
kb_model = ${toString hypr.input.kbModel}
|
|
||||||
kb_layout = ${toString hypr.input.kbLayout}
|
|
||||||
kb_variant = ${toString hypr.input.kbVariant}
|
|
||||||
kb_options = ${toString hypr.input.kbOptions}
|
|
||||||
kb_rules = ${toString hypr.input.kbRules}
|
|
||||||
kb_file = ${toString hypr.input.kbFile}
|
|
||||||
numlock_by_default = ${boolToString hypr.input.numlockByDefault}
|
|
||||||
resolve_binds_by_sym = ${boolToString hypr.input.resolveBindsBySym}
|
|
||||||
repeat_rate = ${toString hypr.input.repeatRate}
|
|
||||||
repeat_delay = ${toString hypr.input.repeatDelay}
|
|
||||||
sensitivity = ${toString hypr.input.sensitivity}
|
|
||||||
accel_profile = ${toString hypr.input.accelProfile}
|
|
||||||
force_no_accel = ${boolToString hypr.input.forceNoAccel}
|
|
||||||
left_handed = ${boolToString hypr.input.leftHanded}
|
|
||||||
scroll_points = ${toString hypr.input.scrollPoints}
|
|
||||||
scroll_method = ${toString hypr.input.scrollMethod}
|
|
||||||
scroll_button = ${toString hypr.input.scrollButton}
|
|
||||||
scroll_button_lock = ${boolToString hypr.input.scrollButtonLock}
|
|
||||||
scroll_factor = ${toString hypr.input.scrollFactor}
|
|
||||||
natural_scroll = ${boolToString hypr.input.naturalScroll}
|
|
||||||
follow_mouse = ${toString hypr.input.followMouse}
|
|
||||||
follow_mouse_threshold = ${toString hypr.input.followMouseThreshold}
|
|
||||||
focus_on_close = ${toString hypr.input.focusOnClose}
|
|
||||||
mouse_refocus = ${boolToString hypr.input.mouseRefocus}
|
|
||||||
float_switch_override_focus = ${toString hypr.input.floatSwitchOverrideFocus}
|
|
||||||
special_fallthrough = ${boolToString hypr.input.specialFallthrough}
|
|
||||||
off_window_axis_events = ${toString hypr.input.offWindowAxisEvents}
|
|
||||||
emulate_discrete_scroll = ${toString hypr.input.emulateDiscreteScroll}
|
|
||||||
|
|
||||||
touchpad {
|
|
||||||
disable_while_typing = ${boolToString hypr.input.touchpad.disableWhileTyping}
|
|
||||||
natural_scroll = ${boolToString hypr.input.touchpad.naturalScroll}
|
|
||||||
scroll_factor = ${toString hypr.input.touchpad.scrollFactor}
|
|
||||||
middle_button_emulation = ${boolToString hypr.input.touchpad.middleButtonEmulation}
|
|
||||||
tap_button_map = ${toString hypr.input.touchpad.tapButtonMap}
|
|
||||||
clickfinger_behavior = ${boolToString hypr.input.touchpad.clickfingerBehavior}
|
|
||||||
tap-to-click = ${boolToString hypr.input.touchpad.tapToClick}
|
|
||||||
drag_lock = ${toString hypr.input.touchpad.dragLock}
|
|
||||||
tap-and-drag = ${toString hypr.input.touchpad.tapAndDrag}
|
|
||||||
flip_x = ${boolToString hypr.input.touchpad.flipX}
|
|
||||||
flip_y = ${boolToString hypr.input.touchpad.flipY}
|
|
||||||
}
|
|
||||||
|
|
||||||
touchdevice {
|
|
||||||
transform = ${toString hypr.input.touchdevice.transform}
|
|
||||||
output = ${toString hypr.input.touchdevice.output}
|
|
||||||
enabled = ${boolToString hypr.input.touchdevice.enabled}
|
|
||||||
}
|
|
||||||
|
|
||||||
tablet {
|
|
||||||
transform = ${toString hypr.input.tablet.transform}
|
|
||||||
output = ${toString hypr.input.tablet.output}
|
|
||||||
region_position = ${toString hypr.input.tablet.regionPosition.x} ${toString hypr.input.tablet.regionPosition.y}
|
|
||||||
absolute_region_position = ${boolToString hypr.input.tablet.absoluteRegionPosition}
|
|
||||||
region_size = ${toString hypr.input.tablet.regionSize.x} ${toString hypr.input.tablet.regionSize.y}
|
|
||||||
relative_input = ${boolToString hypr.input.tablet.relativeInput}
|
|
||||||
left_handed = ${boolToString hypr.input.tablet.leftHanded}
|
|
||||||
active_area_size = ${toString hypr.input.tablet.activeAreaSize.x} ${toString hypr.input.tablet.activeAreaSize.y}
|
|
||||||
active_area_position = ${toString hypr.input.tablet.activeAreaPosition.x} ${toString hypr.input.tablet.activeAreaPosition.y}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gestures {
|
|
||||||
workspace_swipe_distance = ${toString hypr.gestures.workspaceSwipeDistance}
|
|
||||||
workspace_swipe_touch = ${boolToString hypr.gestures.workspaceSwipeTouch}
|
|
||||||
workspace_swipe_invert = ${boolToString hypr.gestures.workspaceSwipeInvert}
|
|
||||||
workspace_swipe_touch_invert = ${boolToString hypr.gestures.workspaceSwipeTouchInvert}
|
|
||||||
workspace_swipe_min_speed_to_force = ${toString hypr.gestures.workspaceSwipeMinSpeedToForce}
|
|
||||||
workspace_swipe_cancel_ratio = ${floatToString hypr.gestures.workspaceSwipeCancelRatio}
|
|
||||||
workspace_swipe_create_new = ${boolToString hypr.gestures.workspaceSwipeCreateNew}
|
|
||||||
workspace_swipe_direction_lock = ${boolToString hypr.gestures.workspaceSwipeDirectionLock}
|
|
||||||
workspace_swipe_direction_lock_threshold = ${toString hypr.gestures.workspaceSwipeDirectionLockThreshold}
|
|
||||||
workspace_swipe_forever = ${boolToString hypr.gestures.workspaceSwipeForever}
|
|
||||||
workspace_swipe_use_r = ${boolToString hypr.gestures.workspaceSwipeUseR}
|
|
||||||
}
|
|
||||||
|
|
||||||
group {
|
|
||||||
auto_group = ${boolToString hypr.group.autoGroup}
|
|
||||||
insert_after_current = ${boolToString hypr.group.insertAfterCurrent}
|
|
||||||
focus_removed_window = ${boolToString hypr.group.focusRemovedWindow}
|
|
||||||
drag_into_group = ${toString hypr.group.dragIntoGroup}
|
|
||||||
merge_groups_on_drag = ${boolToString hypr.group.mergeGroupsOnDrag}
|
|
||||||
merge_groups_on_groupbar = ${boolToString hypr.group.mergeGroupsOnGroupbar}
|
|
||||||
merge_floated_into_tiled_on_groupbar = ${boolToString hypr.group.mergeFloatedIntoTiledOnGroupbar}
|
|
||||||
group_on_movetoworkspace = ${boolToString hypr.group.groupOnMovetoworkspace}
|
|
||||||
col.border_active = ${toString hypr.group.col.borderActive}
|
|
||||||
col.border_inactive = ${toString hypr.group.col.borderInactive}
|
|
||||||
col.border_locked_active = ${toString hypr.group.col.borderLockedActive}
|
|
||||||
col.border_locked_inactive = ${toString hypr.group.col.borderLockedInactive}
|
|
||||||
|
|
||||||
groupbar {
|
|
||||||
enabled = ${boolToString hypr.group.groupbar.enabled}
|
|
||||||
font_family = ${toString hypr.group.groupbar.fontFamily}
|
|
||||||
font_size = ${toString hypr.group.groupbar.fontSize}
|
|
||||||
font_weight_active = ${toString hypr.group.groupbar.fontWeightActive}
|
|
||||||
font_weight_inactive = ${toString hypr.group.groupbar.fontWeightInactive}
|
|
||||||
gradients = ${boolToString hypr.group.groupbar.gradients}
|
|
||||||
height = ${toString hypr.group.groupbar.height}
|
|
||||||
indicator_gap = ${toString hypr.group.groupbar.indicatorGap}
|
|
||||||
indicator_height = ${toString hypr.group.groupbar.indicatorHeight}
|
|
||||||
stacked = ${boolToString hypr.group.groupbar.stacked}
|
|
||||||
priority = ${toString hypr.group.groupbar.priority}
|
|
||||||
render_titles = ${boolToString hypr.group.groupbar.renderTitles}
|
|
||||||
text_offset = ${toString hypr.group.groupbar.textOffset}
|
|
||||||
scrolling = ${boolToString hypr.group.groupbar.scrolling}
|
|
||||||
rounding = ${toString hypr.group.groupbar.rounding}
|
|
||||||
gradient_rounding = ${toString hypr.group.groupbar.gradientRounding}
|
|
||||||
round_only_edges = ${boolToString hypr.group.groupbar.roundOnlyEdges}
|
|
||||||
gradient_round_only_edges = ${boolToString hypr.group.groupbar.gradientRoundOnlyEdges}
|
|
||||||
text_color = ${toString hypr.group.groupbar.textColor}
|
|
||||||
col.active = ${toString hypr.group.groupbar.col.active}
|
|
||||||
col.inactive = ${toString hypr.group.groupbar.col.inactive}
|
|
||||||
col.locked_active = ${toString hypr.group.groupbar.col.lockedActive}
|
|
||||||
col.locked_inactive = ${toString hypr.group.groupbar.col.lockedInactive}
|
|
||||||
gaps_in = ${toString hypr.group.groupbar.gapsIn}
|
|
||||||
gaps_out = ${toString hypr.group.groupbar.gapsOut}
|
|
||||||
keep_upper_gap = ${boolToString hypr.group.groupbar.keepUpperGap}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
misc {
|
|
||||||
disable_hyprland_logo = ${boolToString hypr.misc.disableHyprlandLogo}
|
|
||||||
disable_splash_rendering = ${boolToString hypr.misc.disableSplashRendering}
|
|
||||||
col.splash = ${toString hypr.misc.col.splash}
|
|
||||||
font_family = ${toString hypr.misc.fontFamily}
|
|
||||||
splash_font_family = ${toString hypr.misc.splashFontFamily}
|
|
||||||
force_default_wallpaper = ${toString hypr.misc.forceDefaultWallpaper}
|
|
||||||
vfr = ${toString hypr.misc.vfr}
|
|
||||||
vrr = ${toString hypr.misc.vrr}
|
|
||||||
mouse_move_enables_dpms = ${boolToString hypr.misc.mouseMoveEnablesDPMS}
|
|
||||||
key_press_enables_dpms = ${boolToString hypr.misc.keyPressEnablesDPMS}
|
|
||||||
always_follow_on_dnd = ${boolToString hypr.misc.alwaysFollowOnDnd}
|
|
||||||
layers_hog_keyboard_focus = ${boolToString hypr.misc.layersHogKeyboardFocus}
|
|
||||||
animate_manual_resizes = ${boolToString hypr.misc.animateManualResizes}
|
|
||||||
animate_mouse_windowdragging = ${boolToString hypr.misc.animateMouseWindowdragging}
|
|
||||||
disable_autoreload = ${boolToString hypr.misc.disableAutoreload}
|
|
||||||
enable_swallow = ${boolToString hypr.misc.enableSwallow}
|
|
||||||
swallow_regex = ${toString hypr.misc.swallowRegex}
|
|
||||||
swallow_exception_regex = ${toString hypr.misc.swallowExceptionRegex}
|
|
||||||
focus_on_activate = ${boolToString hypr.misc.focusOnActivate}
|
|
||||||
mouse_move_focuses_monitor = ${boolToString hypr.misc.mouseMoveFocusesMonitor}
|
|
||||||
allow_session_lock_restore = ${boolToString hypr.misc.allowSessionLockRestore}
|
|
||||||
background_color = ${toString hypr.misc.backgroundColor}
|
|
||||||
close_special_on_empty = ${boolToString hypr.misc.closeSpecialOnEmpty}
|
|
||||||
new_window_takes_over_fullscreen = ${toString hypr.misc.newWindowTakesOverFullscreen}
|
|
||||||
exit_window_retains_fullscreen = ${boolToString hypr.misc.exitWindowRetainsFullscreen}
|
|
||||||
initial_workspace_tracking = ${toString hypr.misc.initialWorkspaceTracking}
|
|
||||||
middle_click_paste = ${boolToString hypr.misc.middleClickPaste}
|
|
||||||
render_unfocused_fps = ${toString hypr.misc.renderUnfocusedFps}
|
|
||||||
disable_xdg_env_checks = ${boolToString hypr.misc.disableXdgEnvChecks}
|
|
||||||
disable_hyprland_guiutils_check = ${boolToString hypr.misc.disableHyprlandGuiUtilsCheck}
|
|
||||||
lockdead_screen_delay = ${toString hypr.misc.lockdeadScreenDelay}
|
|
||||||
enable_anr_dialog = ${boolToString hypr.misc.enableAnrDialog}
|
|
||||||
anr_missed_pings = ${toString hypr.misc.anrMissedPings}
|
|
||||||
}
|
|
||||||
|
|
||||||
binds {
|
|
||||||
pass_mouse_when_bound = ${boolToString hypr.binds.passMouseWhenBound}
|
|
||||||
scroll_event_delay = ${toString hypr.binds.scrollEventDelay}
|
|
||||||
workspace_back_and_forth = ${boolToString hypr.binds.workspaceBackAndForth}
|
|
||||||
hide_special_on_workspace_change = ${boolToString hypr.binds.hideSpecialOnWorkspaceChange}
|
|
||||||
allow_workspace_cycles = ${boolToString hypr.binds.allowWorkspaceCycles}
|
|
||||||
workspace_center_on = ${toString hypr.binds.workspaceCenterOn}
|
|
||||||
focus_preferred_method = ${toString hypr.binds.focusPreferredMethod}
|
|
||||||
ignore_group_lock = ${boolToString hypr.binds.ignoreGroupLock}
|
|
||||||
movefocus_cycles_fullscreen = ${boolToString hypr.binds.movefocusCyclesFullscreen}
|
|
||||||
movefocus_cycles_groupfirst = ${boolToString hypr.binds.movefocusCyclesGroupfirst}
|
|
||||||
disable_keybind_grabbing = ${boolToString hypr.binds.disableKeybindGrabbing}
|
|
||||||
window_direction_monitor_fallback = ${boolToString hypr.binds.windowDirectionMonitorFallback}
|
|
||||||
allow_pin_fullscreen = ${boolToString hypr.binds.allowPinFullscreen}
|
|
||||||
drag_threshold = ${toString hypr.binds.dragThreshold}
|
|
||||||
}
|
|
||||||
|
|
||||||
xwayland {
|
|
||||||
enabled = ${boolToString hypr.xwayland.enabled}
|
|
||||||
use_nearest_neighbor = ${boolToString hypr.xwayland.useNearestNeighbor}
|
|
||||||
force_zero_scaling = ${boolToString hypr.xwayland.forceZeroScaling}
|
|
||||||
create_abstract_socket = ${boolToString hypr.xwayland.createAbstractSocket}
|
|
||||||
}
|
|
||||||
|
|
||||||
opengl {
|
|
||||||
nvidia_anti_flicker = ${boolToString hypr.opengl.nvidiaAntiFlicker}
|
|
||||||
}
|
|
||||||
|
|
||||||
render {
|
|
||||||
direct_scanout = ${toString hypr.render.directScanout}
|
|
||||||
expand_undersized_textures = ${boolToString hypr.render.expandUndersizedTextures}
|
|
||||||
xp_mode = ${boolToString hypr.render.xpMode}
|
|
||||||
ctm_animation = ${toString hypr.render.ctmAnimation}
|
|
||||||
cm_fs_passthrough = ${toString hypr.render.cmFsPassthrough}
|
|
||||||
cm_enabled = ${boolToString hypr.render.cmEnabled}
|
|
||||||
send_content_type = ${boolToString hypr.render.sendContentType}
|
|
||||||
}
|
|
||||||
|
|
||||||
cursor {
|
|
||||||
sync_gsettings_theme = ${boolToString hypr.cursor.syncGsettingsTheme}
|
|
||||||
no_hardware_cursors = ${toString hypr.cursor.noHardwareCursors}
|
|
||||||
no_break_fs_vrr = ${toString hypr.cursor.noBreakFsVrr}
|
|
||||||
min_refresh_rate = ${toString hypr.cursor.minRefreshRate}
|
|
||||||
hotspot_padding = ${toString hypr.cursor.hotspotPadding}
|
|
||||||
inactive_timeout = ${toString hypr.cursor.inactiveTimeout}
|
|
||||||
no_warps = ${boolToString hypr.cursor.noWarps}
|
|
||||||
persistent_warps = ${boolToString hypr.cursor.persistentWarps}
|
|
||||||
warp_on_change_workspace = ${toString hypr.cursor.warpOnChangeWorkspace}
|
|
||||||
warp_on_toggle_special = ${toString hypr.cursor.warpOnToggleSpecial}
|
|
||||||
default_monitor = ${toString hypr.cursor.defaultMonitor}
|
|
||||||
zoom_factor = ${toString hypr.cursor.zoomFactor}
|
|
||||||
zoom_rigid = ${boolToString hypr.cursor.zoomRigid}
|
|
||||||
enable_hyprcursor = ${boolToString hypr.cursor.enableHyprcursor}
|
|
||||||
hide_on_key_press = ${boolToString hypr.cursor.hideOnKeyPress}
|
|
||||||
hide_on_touch = ${boolToString hypr.cursor.hideOnTouch}
|
|
||||||
use_cpu_buffer = ${toString hypr.cursor.useCpuBuffer}
|
|
||||||
warp_back_after_non_mouse_input = ${boolToString hypr.cursor.warpBackAfterNonMouseInput}
|
|
||||||
}
|
|
||||||
|
|
||||||
ecosystem {
|
|
||||||
no_update_news = ${boolToString hypr.ecosystem.noUpdateNews}
|
|
||||||
no_donation_nag = ${boolToString hypr.ecosystem.noDonationNag}
|
|
||||||
enforce_permissions = ${boolToString hypr.ecosystem.enforcePermissions}
|
|
||||||
}
|
|
||||||
|
|
||||||
dwindle {
|
|
||||||
pseudotile = ${boolToString hypr.dwindle.pseudotile}
|
|
||||||
preserve_split = ${boolToString hypr.dwindle.preserveSplit}
|
|
||||||
}
|
|
||||||
|
|
||||||
master {
|
|
||||||
new_status = ${toString hypr.master.newStatus}
|
|
||||||
}
|
|
||||||
|
|
||||||
${concatStringsSep "\n" (map (mon: "monitor = ${mon.output}, ${mon.resolution}@${mon.refreshRate}, ${toString mon.x}x${toString mon.y}, ${floatToString mon.scale}, transform, ${toString mon.transform}") hypr.monitors.displays)}
|
|
||||||
|
|
||||||
${
|
|
||||||
if hypr.monitors.defaultMonitor
|
|
||||||
then "monitor = ,preferred, auto, auto"
|
|
||||||
else ""
|
|
||||||
}
|
|
||||||
|
|
||||||
${concatStringsSep "\n" (map (wr: "windowrule = " + wr) hypr.windowrules)}
|
|
||||||
|
|
||||||
${concatStringsSep "\n" (map (ws: "workspace = " + ws) hypr.workspaces)}
|
|
||||||
|
|
||||||
${
|
|
||||||
concatStringsSep "\n" (
|
|
||||||
if hypr.monitors.bindWorkspaces == "interlaced"
|
|
||||||
then (map (x: "workspace = ${toString (x + 1)}, persistent:true, monitor:${(elemAt hypr.monitors.displays (x - ((length hypr.monitors.displays) * (x / (length hypr.monitors.displays))))).output}") (genList (x: x) 10))
|
|
||||||
else []
|
|
||||||
)
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,76 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) mkIf mkEnableOption;
|
|
||||||
|
|
||||||
cfg = config.horseman.dots.hypr.hyprlock;
|
|
||||||
username = config.horseman.username;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
horseman.dots.hypr.hyprlock = {
|
|
||||||
enable = mkEnableOption "~/.config/hypr/hyprlock.conf";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${username}.xdg.configFile."hypr/hyprlock.conf".text = ''
|
|
||||||
$font = Monospace
|
|
||||||
|
|
||||||
general {
|
|
||||||
hide_cursor = false
|
|
||||||
}
|
|
||||||
|
|
||||||
animations {
|
|
||||||
enabled = true
|
|
||||||
bezier = linear, 1, 1, 0, 0
|
|
||||||
animation = fadeIn, 1, 5, linear
|
|
||||||
animation = fadeOut, 1, 5, linear
|
|
||||||
animation = inputFieldDots, 1, 2, linear
|
|
||||||
}
|
|
||||||
|
|
||||||
background {
|
|
||||||
monitor =
|
|
||||||
path = screenshot
|
|
||||||
blur_passes = 3
|
|
||||||
}
|
|
||||||
|
|
||||||
input-field {
|
|
||||||
monitor =
|
|
||||||
size = 20%, 5%
|
|
||||||
outline_thickness = 3
|
|
||||||
inner_color = rgba(0, 0, 0, 0.0) # no fill
|
|
||||||
|
|
||||||
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
|
|
||||||
check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
|
|
||||||
fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
|
|
||||||
|
|
||||||
font_color = rgb(143, 143, 143)
|
|
||||||
fade_on_empty = false
|
|
||||||
rounding = 15
|
|
||||||
|
|
||||||
font_family = $font
|
|
||||||
placeholder_text = Input password...
|
|
||||||
fail_text = $PAMFAIL
|
|
||||||
|
|
||||||
dots_spacing = 0.3
|
|
||||||
|
|
||||||
position = 0, -20
|
|
||||||
halign = center
|
|
||||||
valign = center
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
|
||||||
monitor =
|
|
||||||
text = $TIME
|
|
||||||
font_size = 90
|
|
||||||
font_family = $font
|
|
||||||
|
|
||||||
position = 0, -50
|
|
||||||
halign = center
|
|
||||||
valign = top
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) mkIf mkEnableOption;
|
|
||||||
inherit (builtins) concatStringsSep;
|
|
||||||
|
|
||||||
cfg = config.horseman.dots.hypr.hyprpaper;
|
|
||||||
username = config.horseman.username;
|
|
||||||
hypr = config.horseman.wm.hyprland.config;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
horseman.dots.hypr.hyprpaper = {
|
|
||||||
enable = mkEnableOption "~/.config/hypr/hyprpaper.conf";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${username}.xdg.configFile."hypr/hyprpaper.conf".text = ''
|
|
||||||
${concatStringsSep "\n" (map (dis:
|
|
||||||
if dis.wallpaper != null
|
|
||||||
then ''
|
|
||||||
preload = ${dis.wallpaper}
|
|
||||||
wallpaper = ${dis.output}, ${dis.wallpaper}
|
|
||||||
''
|
|
||||||
else "")
|
|
||||||
hypr.monitors.displays)}
|
|
||||||
|
|
||||||
preload = /home/${username}/nix-config/misc/wallpaper.jpg
|
|
||||||
wallpaper = , /home/${username}/nix-config/misc/wallpaper.jpg
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) mkIf mkEnableOption mkOption types;
|
inherit (lib) mkIf mkEnableOption mkOption types catppuccin;
|
||||||
cfg = config.horseman.dots.kitty;
|
cfg = config.horseman.dots.kitty;
|
||||||
username = config.horseman.username;
|
username = config.horseman.username;
|
||||||
colors = config.horseman.catppuccin.colors;
|
colors = config.horseman.catppuccin.colors;
|
||||||
|
|
@ -33,75 +33,75 @@ in {
|
||||||
font_size ${toString cfg.fontSize}
|
font_size ${toString cfg.fontSize}
|
||||||
|
|
||||||
# The basic colors
|
# The basic colors
|
||||||
foreground ${colors.text}
|
foreground ${catppuccin.toHex colors.text}
|
||||||
background ${colors.base}
|
background ${catppuccin.toHex colors.base}
|
||||||
selection_foreground ${colors.base}
|
selection_foreground ${catppuccin.toHex colors.base}
|
||||||
selection_background ${colors.rosewater}
|
selection_background ${catppuccin.toHex colors.rosewater}
|
||||||
|
|
||||||
# Cursor colors
|
# Cursor colors
|
||||||
cursor ${colors.rosewater}
|
cursor ${catppuccin.toHex colors.rosewater}
|
||||||
cursor_text_color ${colors.base}
|
cursor_text_color ${catppuccin.toHex colors.base}
|
||||||
|
|
||||||
# URL underline color when hovering with mouse
|
# URL underline color when hovering with mouse
|
||||||
url_color ${colors.rosewater}
|
url_color ${catppuccin.toHex colors.rosewater}
|
||||||
|
|
||||||
# Kitty window border colors
|
# Kitty window border colors
|
||||||
active_border_color ${colors.lavender}
|
active_border_color ${catppuccin.toHex colors.lavender}
|
||||||
inactive_border_color ${colors.overlay0}
|
inactive_border_color ${catppuccin.toHex colors.overlay0}
|
||||||
bell_border_color ${colors.yellow}
|
bell_border_color ${catppuccin.toHex colors.yellow}
|
||||||
|
|
||||||
# OS Window titlebar colors
|
# OS Window titlebar colors
|
||||||
wayland_titlebar_color system
|
wayland_titlebar_color system
|
||||||
macos_titlebar_color system
|
macos_titlebar_color system
|
||||||
|
|
||||||
# Tab bar colors
|
# Tab bar colors
|
||||||
active_tab_foreground ${colors.crust}
|
active_tab_foreground ${catppuccin.toHex colors.crust}
|
||||||
active_tab_background ${colors.mauve}
|
active_tab_background ${catppuccin.toHex colors.mauve}
|
||||||
inactive_tab_foreground ${colors.text}
|
inactive_tab_foreground ${catppuccin.toHex colors.text}
|
||||||
inactive_tab_background ${colors.mantle}
|
inactive_tab_background ${catppuccin.toHex colors.mantle}
|
||||||
tab_bar_background ${colors.crust}
|
tab_bar_background ${catppuccin.toHex colors.crust}
|
||||||
|
|
||||||
# Colors for marks (marked text in the terminal)
|
# Colors for marks (marked text in the terminal)
|
||||||
mark1_foreground ${colors.base}
|
mark1_foreground ${catppuccin.toHex colors.base}
|
||||||
mark1_background ${colors.lavender}
|
mark1_background ${catppuccin.toHex colors.lavender}
|
||||||
mark2_foreground ${colors.base}
|
mark2_foreground ${catppuccin.toHex colors.base}
|
||||||
mark2_background ${colors.mauve}
|
mark2_background ${catppuccin.toHex colors.mauve}
|
||||||
mark3_foreground ${colors.base}
|
mark3_foreground ${catppuccin.toHex colors.base}
|
||||||
mark3_background ${colors.sapphire}
|
mark3_background ${catppuccin.toHex colors.sapphire}
|
||||||
|
|
||||||
# The 16 terminal colors
|
# The 16 terminal colors
|
||||||
|
|
||||||
# black
|
# black
|
||||||
color0 ${colors.surface1}
|
color0 ${catppuccin.toHex colors.surface1}
|
||||||
color8 ${colors.surface2}
|
color8 ${catppuccin.toHex colors.surface2}
|
||||||
|
|
||||||
# red
|
# red
|
||||||
color1 ${colors.red}
|
color1 ${catppuccin.toHex colors.red}
|
||||||
color9 ${colors.red}
|
color9 ${catppuccin.toHex colors.red}
|
||||||
|
|
||||||
# green
|
# green
|
||||||
color2 ${colors.green}
|
color2 ${catppuccin.toHex colors.green}
|
||||||
color10 ${colors.green}
|
color10 ${catppuccin.toHex colors.green}
|
||||||
|
|
||||||
# yellow
|
# yellow
|
||||||
color3 ${colors.yellow}
|
color3 ${catppuccin.toHex colors.yellow}
|
||||||
color11 ${colors.yellow}
|
color11 ${catppuccin.toHex colors.yellow}
|
||||||
|
|
||||||
# blue
|
# blue
|
||||||
color4 ${colors.blue}
|
color4 ${catppuccin.toHex colors.blue}
|
||||||
color12 ${colors.blue}
|
color12 ${catppuccin.toHex colors.blue}
|
||||||
|
|
||||||
# magenta
|
# magenta
|
||||||
color5 ${colors.mauve}
|
color5 ${catppuccin.toHex colors.mauve}
|
||||||
color13 ${colors.mauve}
|
color13 ${catppuccin.toHex colors.mauve}
|
||||||
|
|
||||||
# cyan
|
# cyan
|
||||||
color6 ${colors.teal}
|
color6 ${catppuccin.toHex colors.teal}
|
||||||
color14 ${colors.teal}
|
color14 ${catppuccin.toHex colors.teal}
|
||||||
|
|
||||||
# white
|
# white
|
||||||
color7 ${colors.subtext1}
|
color7 ${catppuccin.toHex colors.subtext1}
|
||||||
color15 ${colors.subtext0}
|
color15 ${catppuccin.toHex colors.subtext0}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,10 @@
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption catppuccin;
|
||||||
cfg = config.horseman.dots.waybar;
|
cfg = config.horseman.dots.waybar;
|
||||||
username = config.horseman.username;
|
username = config.horseman.username;
|
||||||
colors = config.horseman.catppuccin.colors;
|
colors = config.horseman.catppuccin.colors;
|
||||||
accent = config.horseman.catppuccin.accent;
|
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
horseman.dots.waybar = {
|
horseman.dots.waybar = {
|
||||||
|
|
@ -26,33 +25,33 @@ in {
|
||||||
}
|
}
|
||||||
|
|
||||||
.modules-left, .modules-center, .modules-right {
|
.modules-left, .modules-center, .modules-right {
|
||||||
border: 2px solid ${colors.${accent}};
|
border: 2px solid ${catppuccin.toHex colors.accent};
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
background: ${colors.base};
|
background: ${catppuccin.toHex colors.base};
|
||||||
color: ${colors.text};
|
color: ${catppuccin.toHex colors.text};
|
||||||
}
|
}
|
||||||
|
|
||||||
#power {
|
#power {
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
#idle_inhibitor.activated {
|
#idle_inhibitor.activated {
|
||||||
color: ${colors.red};
|
color: ${catppuccin.toHex colors.red};
|
||||||
}
|
}
|
||||||
#power * {
|
#power * {
|
||||||
color: ${colors.${accent}};
|
color: ${catppuccin.toHex colors.accent};
|
||||||
transition: 0.2s color ease;
|
transition: 0.2s color ease;
|
||||||
font-size: 26px;
|
font-size: 26px;
|
||||||
}
|
}
|
||||||
#power *:hover {
|
#power *:hover {
|
||||||
color: ${colors.red};
|
color: ${catppuccin.toHex colors.red};
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces .empty {
|
#workspaces .empty {
|
||||||
color: ${colors.surface0};
|
color: ${catppuccin.toHex colors.surface0};
|
||||||
}
|
}
|
||||||
#workspaces .active {
|
#workspaces .active {
|
||||||
color: ${colors.red};
|
color: ${catppuccin.toHex colors.red};
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
#workspaces * {
|
#workspaces * {
|
||||||
|
|
@ -62,27 +61,27 @@ in {
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces > * {
|
#workspaces > * {
|
||||||
color: ${colors.${accent}};
|
color: ${catppuccin.toHex colors.accent};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#clock {
|
#clock {
|
||||||
color: ${colors.peach};
|
color: ${catppuccin.toHex colors.peach};
|
||||||
}
|
}
|
||||||
#battery {
|
#battery {
|
||||||
color: ${colors.maroon};
|
color: ${catppuccin.toHex colors.maroon};
|
||||||
}
|
}
|
||||||
#cpu {
|
#cpu {
|
||||||
color: ${colors.red};
|
color: ${catppuccin.toHex colors.red};
|
||||||
}
|
}
|
||||||
#memory {
|
#memory {
|
||||||
color: ${colors.mauve};
|
color: ${catppuccin.toHex colors.mauve};
|
||||||
}
|
}
|
||||||
#pulseaudio {
|
#pulseaudio {
|
||||||
color: ${colors.blue};
|
color: ${catppuccin.toHex colors.blue};
|
||||||
}
|
}
|
||||||
#network {
|
#network {
|
||||||
color: ${colors.teal};
|
color: ${catppuccin.toHex colors.teal};
|
||||||
}
|
}
|
||||||
.horizontal .modules-right {
|
.horizontal .modules-right {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,10 @@
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption catppuccin;
|
||||||
cfg = config.horseman.dots.wofi;
|
cfg = config.horseman.dots.wofi;
|
||||||
username = config.horseman.username;
|
username = config.horseman.username;
|
||||||
colors = config.horseman.catppuccin.colors;
|
colors = config.horseman.catppuccin.colors;
|
||||||
accent = config.horseman.catppuccin.accent;
|
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
horseman.dots.wofi = {
|
horseman.dots.wofi = {
|
||||||
|
|
@ -26,9 +25,9 @@ in {
|
||||||
window {
|
window {
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border: 3px solid ${colors.${accent}};
|
border: 3px solid ${catppuccin.toHex colors.accent};
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background-color: ${builtins.replaceStrings ["rgb" ")"] ["rgba" ", 0.99)"] colors.base-rgb};
|
background-color: ${catppuccin.toRGBA colors.base 0.99};
|
||||||
/* animation: slideIn 0.5s ease-in-out both; */
|
/* animation: slideIn 0.5s ease-in-out both; */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -48,7 +47,7 @@ in {
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border: none;
|
border: none;
|
||||||
background-color: ${colors.base};
|
background-color: ${catppuccin.toHex colors.base};
|
||||||
/* animation: fadeIn 0.5s ease-in-out both; */
|
/* animation: fadeIn 0.5s ease-in-out both; */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -68,7 +67,7 @@ in {
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border: none;
|
border: none;
|
||||||
background-color: ${colors.base};
|
background-color: ${catppuccin.toHex colors.base};
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Scroll */
|
/* Scroll */
|
||||||
|
|
@ -76,63 +75,63 @@ in {
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border: none;
|
border: none;
|
||||||
background-color: ${colors.base};
|
background-color: ${catppuccin.toHex colors.base};
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Input */
|
/* Input */
|
||||||
#input {
|
#input {
|
||||||
margin: 5px 20px;
|
margin: 5px 20px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border: 2px solid ${colors.${accent}};
|
border: 2px solid ${catppuccin.toHex colors.accent};
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
color: ${colors.text};
|
color: ${catppuccin.toHex colors.text};
|
||||||
background-color: ${colors.base};
|
background-color: ${catppuccin.toHex colors.base};
|
||||||
/* animation: fadeIn 0.5s ease-in-out both; */
|
/* animation: fadeIn 0.5s ease-in-out both; */
|
||||||
}
|
}
|
||||||
|
|
||||||
#input image {
|
#input image {
|
||||||
border: none;
|
border: none;
|
||||||
color: ${colors.red};
|
color: ${catppuccin.toHex colors.red};
|
||||||
}
|
}
|
||||||
|
|
||||||
#input * {
|
#input * {
|
||||||
outline: 4px solid ${colors.red}!important;
|
outline: 4px solid ${catppuccin.toHex colors.red}!important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Text */
|
/* Text */
|
||||||
#text {
|
#text {
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
border: none;
|
border: none;
|
||||||
color: ${colors.text};
|
color: ${catppuccin.toHex colors.text};
|
||||||
/* animation: fadeIn 0.5s ease-in-out both; */
|
/* animation: fadeIn 0.5s ease-in-out both; */
|
||||||
}
|
}
|
||||||
|
|
||||||
#entry {
|
#entry {
|
||||||
background-color: ${colors.base};
|
background-color: ${catppuccin.toHex colors.base};
|
||||||
}
|
}
|
||||||
|
|
||||||
#entry arrow {
|
#entry arrow {
|
||||||
border: none;
|
border: none;
|
||||||
color: ${colors.${accent}};
|
color: ${catppuccin.toHex colors.accent};
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Selected Entry */
|
/* Selected Entry */
|
||||||
#entry:selected arrow {
|
#entry:selected arrow {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
color: ${colors.mauve};
|
color: ${catppuccin.toHex colors.mauve};
|
||||||
}
|
}
|
||||||
|
|
||||||
#entry:selected {
|
#entry:selected {
|
||||||
border: 1px solid ${colors.${accent}};
|
border: 1px solid ${catppuccin.toHex colors.accent};
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#entry:selected #text {
|
#entry:selected #text {
|
||||||
color: ${colors.mauve};
|
color: ${catppuccin.toHex colors.mauve};
|
||||||
}
|
}
|
||||||
|
|
||||||
#entry:drop(active) {
|
#entry:drop(active) {
|
||||||
background-color: ${colors.${accent}}!important;
|
background-color: ${catppuccin.toHex colors.accent}!important;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,7 @@
|
||||||
imports = [
|
imports = [
|
||||||
./.warprc.nix
|
./.warprc.nix
|
||||||
./.config/eza/theme.yml.nix
|
./.config/eza/theme.yml.nix
|
||||||
./.config/hypr/hypridle.conf.nix
|
./.config/fuzzel/fuzzel.ini.nix
|
||||||
./.config/hypr/hyprlock.conf.nix
|
|
||||||
./.config/hypr/hyprland.conf.nix
|
|
||||||
./.config/hypr/hyprpaper.conf.nix
|
|
||||||
./.config/kitty/kitty.conf.nix
|
./.config/kitty/kitty.conf.nix
|
||||||
./.config/wofi/style.css.nix
|
./.config/wofi/style.css.nix
|
||||||
./.config/waybar/style.css.nix
|
./.config/waybar/style.css.nix
|
||||||
|
|
|
||||||
42
flake.lock
generated
42
flake.lock
generated
|
|
@ -73,11 +73,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1766292113,
|
"lastModified": 1767780135,
|
||||||
"narHash": "sha256-sWTtmkQujRpjWYCnZc8LWdDiCzrRlSBPrGovkZpLkBI=",
|
"narHash": "sha256-5SbmsLMgxzPd9YMbFR4IHfOXv6bjWs+dfl6IbSq3r7s=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "fdec8815a86db36f42fc9c8cb2931cd8485f5aed",
|
"rev": "c08430923ed417abc653884328a39e98496cfd0f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -87,13 +87,36 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-hyprland": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": [
|
||||||
|
"home-manager"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767801421,
|
||||||
|
"narHash": "sha256-z6+cVdgkJSz+MLUOChLDUZsiBP/h6tuAZSjVG+66jpo=",
|
||||||
|
"owner": "KoenDR06",
|
||||||
|
"repo": "nix-hyprland",
|
||||||
|
"rev": "4efff468c6435080b0716fd289ab7c06c4bb215f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "KoenDR06",
|
||||||
|
"repo": "nix-hyprland",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1766201043,
|
"lastModified": 1767634882,
|
||||||
"narHash": "sha256-eplAP+rorKKd0gNjV3rA6+0WMzb1X1i16F5m5pASnjA=",
|
"narHash": "sha256-2GffSfQxe3sedHzK+sTKlYo/NTIAGzbFCIsNMUPAAnk=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b3aad468604d3e488d627c0b43984eb60e75e782",
|
"rev": "3c9db02515ef1d9b6b709fc60ba9a540957f661c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -113,11 +136,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763909441,
|
"lastModified": 1767662275,
|
||||||
"narHash": "sha256-56LwV51TX/FhgX+5LCG6akQ5KrOWuKgcJa+eUsRMxsc=",
|
"narHash": "sha256-d5Q1GmQ+sW1Bt8cgDE0vOihzLaswsm8cSdg8124EqXE=",
|
||||||
"owner": "pjones",
|
"owner": "pjones",
|
||||||
"repo": "plasma-manager",
|
"repo": "plasma-manager",
|
||||||
"rev": "b24ed4b272256dfc1cc2291f89a9821d5f9e14b4",
|
"rev": "51816be33a1ff0d4b22427de83222d5bfa96d30e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -130,6 +153,7 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
|
"nix-hyprland": "nix-hyprland",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"plasma-manager": "plasma-manager"
|
"plasma-manager": "plasma-manager"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
13
flake.nix
13
flake.nix
|
|
@ -19,6 +19,12 @@
|
||||||
url = "github:ryantm/agenix";
|
url = "github:ryantm/agenix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nix-hyprland = {
|
||||||
|
url = "github:KoenDR06/nix-hyprland";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.home-manager.follows = "home-manager";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
|
|
@ -27,6 +33,7 @@
|
||||||
home-manager,
|
home-manager,
|
||||||
plasma-manager,
|
plasma-manager,
|
||||||
agenix,
|
agenix,
|
||||||
|
nix-hyprland,
|
||||||
...
|
...
|
||||||
} @ inputs: let
|
} @ inputs: let
|
||||||
inherit (self) outputs;
|
inherit (self) outputs;
|
||||||
|
|
@ -46,21 +53,23 @@
|
||||||
"x86_64-darwin"
|
"x86_64-darwin"
|
||||||
];
|
];
|
||||||
forAllSystems = nixpkgs.lib.genAttrs systems;
|
forAllSystems = nixpkgs.lib.genAttrs systems;
|
||||||
|
|
||||||
|
lib = import ./lib {inherit inputs;};
|
||||||
in {
|
in {
|
||||||
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
|
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
|
||||||
|
|
||||||
nixosConfigurations = nixpkgs.lib.genAttrs hosts (host:
|
nixosConfigurations = nixpkgs.lib.genAttrs hosts (host:
|
||||||
nixpkgs.lib.nixosSystem {
|
nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit inputs outputs;
|
inherit inputs outputs lib;
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
./lib
|
|
||||||
./modules
|
./modules
|
||||||
./dots
|
./dots
|
||||||
./machines/${host}/configuration.nix
|
./machines/${host}/configuration.nix
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
|
nix-hyprland.nixosModules.default
|
||||||
{
|
{
|
||||||
home-manager.sharedModules = [plasma-manager.homeModules.plasma-manager];
|
home-manager.sharedModules = [plasma-manager.homeModules.plasma-manager];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
11
lib/catppuccin.nix
Normal file
11
lib/catppuccin.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{inputs, ...}: let
|
||||||
|
inherit (inputs.nixpkgs.lib) toHexString concatStrings strings;
|
||||||
|
inherit (strings) fixedWidthString;
|
||||||
|
|
||||||
|
padHex = n: fixedWidthString 2 "0" (toHexString n);
|
||||||
|
in {
|
||||||
|
toHex = color: concatStrings ["#" (padHex color.red) (padHex color.green) (padHex color.blue)];
|
||||||
|
toHexNoHash = color: concatStrings [(padHex color.red) (padHex color.green) (padHex color.blue)];
|
||||||
|
toRGB = color: concatStrings ["rgb(" (toString color.red) "," (toString color.green) "," (toString color.blue) ")"];
|
||||||
|
toRGBA = color: a: concatStrings ["rgba(" (toString color.red) "," (toString color.green) "," (toString color.blue) "," (toString a) ")"];
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
{...}: {
|
{inputs, ...}:
|
||||||
imports = [
|
inputs.nixpkgs.lib.extend (
|
||||||
./hyprland
|
final: prev: {
|
||||||
];
|
catppuccin = import ./catppuccin.nix {inherit inputs;};
|
||||||
}
|
}
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
{...}: {
|
|
||||||
imports = [
|
|
||||||
./standard-options.nix
|
|
||||||
./gestures.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
{lib, ...}: let
|
|
||||||
inherit (lib) mkOption types;
|
|
||||||
inherit (builtins) concatStringsSep;
|
|
||||||
|
|
||||||
# v0.52.1
|
|
||||||
|
|
||||||
# gesture = fingers, direction, action, options
|
|
||||||
gesture =
|
|
||||||
types.submodule {
|
|
||||||
options = {
|
|
||||||
fingers = mkOption {
|
|
||||||
type = types.ints.positive;
|
|
||||||
};
|
|
||||||
direction = mkOption {
|
|
||||||
type = types.enum ["swipe" "horizontal" "vertical" "left" "right" "up" "down" "pinch" "pinchin" "pinchout"];
|
|
||||||
};
|
|
||||||
mods = mkOption {
|
|
||||||
type = types.listOf types.str;
|
|
||||||
default = [];
|
|
||||||
};
|
|
||||||
scale = mkOption {
|
|
||||||
type = types.numbers.positive;
|
|
||||||
default = 1;
|
|
||||||
};
|
|
||||||
action = mkOption {
|
|
||||||
type = types.enum ["dispatcher" "workspace" "move" "resize" "special" "close" "fullscreen" "float"];
|
|
||||||
};
|
|
||||||
options = mkOption {
|
|
||||||
type = types.listOf types.str;
|
|
||||||
default = [];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
// {
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
options.horseman.wm.hyprland.config = {
|
|
||||||
gestures.gestures = mkOption {
|
|
||||||
type = types.listOf gesture;
|
|
||||||
default = [];
|
|
||||||
apply = gs:
|
|
||||||
map (it:
|
|
||||||
it
|
|
||||||
// {
|
|
||||||
__toString = gs: "gesture = ${concatStringsSep ", " (
|
|
||||||
[
|
|
||||||
(toString gs.fingers)
|
|
||||||
(gs.direction)
|
|
||||||
]
|
|
||||||
++ map (it: "mod: ${it}") gs.mods
|
|
||||||
++ [
|
|
||||||
"scale: ${toString gs.scale}"
|
|
||||||
(gs.action)
|
|
||||||
]
|
|
||||||
++ gs.options
|
|
||||||
)}";
|
|
||||||
})
|
|
||||||
gs;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -3,10 +3,28 @@
|
||||||
../../modules
|
../../modules
|
||||||
];
|
];
|
||||||
|
|
||||||
|
config.nix-hyprland = {
|
||||||
|
monitors = {
|
||||||
|
bindWorkspaces = "interlaced";
|
||||||
|
displays = [
|
||||||
|
{
|
||||||
|
output = "eDP-1";
|
||||||
|
x = 0;
|
||||||
|
y = 0;
|
||||||
|
bar = "top";
|
||||||
|
scale = 1.175; # Idk why hyprland doesn't think 1.25 is invalid but whatever.
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
config.horseman = {
|
config.horseman = {
|
||||||
dots.kitty.fontSize = 13;
|
dots.kitty.fontSize = 13;
|
||||||
|
|
||||||
catppuccin.flavor = "mocha";
|
catppuccin = {
|
||||||
|
flavor = "mocha";
|
||||||
|
accent = "blue";
|
||||||
|
};
|
||||||
|
|
||||||
users.default.enable = true;
|
users.default.enable = true;
|
||||||
|
|
||||||
|
|
@ -28,22 +46,7 @@
|
||||||
greeter.greetd.session = "Hyprland";
|
greeter.greetd.session = "Hyprland";
|
||||||
};
|
};
|
||||||
|
|
||||||
wm.hyprland = {
|
wm.hyprland.enable = true;
|
||||||
enable = true;
|
|
||||||
|
|
||||||
config = {
|
|
||||||
monitors.displays = [
|
|
||||||
{
|
|
||||||
output = "eDP-1";
|
|
||||||
x = 0;
|
|
||||||
y = 0;
|
|
||||||
bar = "top";
|
|
||||||
scale = 1.175; # Idk why hyprland doesn't think 1.25 is invalid but whatever.
|
|
||||||
}
|
|
||||||
];
|
|
||||||
monitors.bindWorkspaces = "interlaced";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
audio.enable = true;
|
audio.enable = true;
|
||||||
|
|
@ -56,6 +59,7 @@
|
||||||
ssh.enable = true;
|
ssh.enable = true;
|
||||||
syncthing.enable = true;
|
syncthing.enable = true;
|
||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
|
printing.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
apps = {
|
apps = {
|
||||||
|
|
|
||||||
|
|
@ -8,4 +8,6 @@
|
||||||
horseman.stateVersion = "24.11";
|
horseman.stateVersion = "24.11";
|
||||||
|
|
||||||
networking.hostName = "terra";
|
networking.hostName = "terra";
|
||||||
|
|
||||||
|
programs.niri.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,33 @@
|
||||||
../../modules
|
../../modules
|
||||||
];
|
];
|
||||||
|
|
||||||
|
config.nix-hyprland = {
|
||||||
|
monitors = {
|
||||||
|
displays = [
|
||||||
|
{
|
||||||
|
output = "DP-2";
|
||||||
|
x = 0;
|
||||||
|
y = 0;
|
||||||
|
wallpaper = ../../misc/landscape.png;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
output = "DP-3";
|
||||||
|
x = -1440;
|
||||||
|
y = 0;
|
||||||
|
transform = 1;
|
||||||
|
wallpaper = ../../misc/portrait.png;
|
||||||
|
bar = "top";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
bindWorkspaces = "interlaced";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
config.horseman = {
|
config.horseman = {
|
||||||
catppuccin.flavor = "mocha";
|
catppuccin = {
|
||||||
|
flavor = "mocha";
|
||||||
|
accent = "blue";
|
||||||
|
};
|
||||||
|
|
||||||
users.default.enable = true;
|
users.default.enable = true;
|
||||||
|
|
||||||
|
|
@ -24,44 +49,25 @@
|
||||||
loader.systemd.enable = true;
|
loader.systemd.enable = true;
|
||||||
greeter.greetd.enable = true;
|
greeter.greetd.enable = true;
|
||||||
greeter.greetd.session = "Hyprland";
|
greeter.greetd.session = "Hyprland";
|
||||||
|
greeter.greetd.autoLogin = true;
|
||||||
refind.enable = true;
|
refind.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
wm.hyprland = {
|
wm.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
config = {
|
|
||||||
monitors = {
|
|
||||||
displays = [
|
|
||||||
{
|
|
||||||
output = "DP-2";
|
|
||||||
x = 0;
|
|
||||||
y = 0;
|
|
||||||
wallpaper = ../../misc/landscape.png;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "DP-3";
|
|
||||||
x = -1440;
|
|
||||||
y = 0;
|
|
||||||
transform = 1;
|
|
||||||
wallpaper = ../../misc/portrait.png;
|
|
||||||
bar = "top";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
bindWorkspaces = "interlaced";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
gpu.nvidia.enable = true;
|
gpu.nvidia.enable = true;
|
||||||
audio.enable = true;
|
audio.enable = true;
|
||||||
|
wifi.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
network = {
|
network = {
|
||||||
ssh.enable = true;
|
ssh.enable = true;
|
||||||
syncthing.enable = true;
|
syncthing.enable = true;
|
||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
|
printing.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
apps = {
|
apps = {
|
||||||
|
|
|
||||||
12
misc/power-menu.sh
Executable file
12
misc/power-menu.sh
Executable file
|
|
@ -0,0 +1,12 @@
|
||||||
|
cmds=('shutdown now' 'reboot' 'hyprlock' 'hyprctl dispatch exit')
|
||||||
|
|
||||||
|
count=${#cmds[@]}
|
||||||
|
default=15
|
||||||
|
|
||||||
|
lines=$((count > default ? default : count))
|
||||||
|
|
||||||
|
a=$(printf ' Shut down\n Reboot\n Lock\n Log out' | fuzzel --cache /dev/null --dmenu --index --lines $lines --placeholder "Power action: " -I)
|
||||||
|
|
||||||
|
if [ -n "$a" ]; then
|
||||||
|
${cmds[a]}
|
||||||
|
fi
|
||||||
14
misc/sound-menu.sh
Executable file
14
misc/sound-menu.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
||||||
|
mapfile -t ids < <(wpctl status | sed -n '/Audio/,/Video/p' | sed -n '/├─ Sinks:/,/├─ Sources:/p' | tail -n +2 | head -n -2 | sed -r 's/^........//' | sed -r 's/\. .*//')
|
||||||
|
|
||||||
|
mapfile -t sinks < <(wpctl status | sed -n '/Audio/,/Video/p' | sed -n '/├─ Sinks:/,/├─ Sources:/p' | tail -n +2 | head -n -2 | sed -r 's/^........//' | sed -r 's/[0-9]+\. //')
|
||||||
|
|
||||||
|
count=${#ids[@]}
|
||||||
|
default=15
|
||||||
|
|
||||||
|
lines=$((count > default ? default : count))
|
||||||
|
|
||||||
|
a=$(printf '%s\n' "${sinks[@]}" | fuzzel --cache /dev/null --dmenu --index --lines $lines --placeholder "Switch audio source: " -I)
|
||||||
|
|
||||||
|
if [ -n "$a" ]; then
|
||||||
|
wpctl set-default ${ids[a]}
|
||||||
|
fi
|
||||||
|
|
@ -64,6 +64,7 @@ in {
|
||||||
"uBlock0@raymondhill.net" = {
|
"uBlock0@raymondhill.net" = {
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||||
installation_mode = "force_installed";
|
installation_mode = "force_installed";
|
||||||
|
private_browsing = true;
|
||||||
};
|
};
|
||||||
# Dark Reader
|
# Dark Reader
|
||||||
"addon@darkreader.org" = {
|
"addon@darkreader.org" = {
|
||||||
|
|
@ -89,6 +90,7 @@ in {
|
||||||
"idcac-pub@guus.ninja" = {
|
"idcac-pub@guus.ninja" = {
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/istilldontcareaboutcookies/latest.xpi";
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/istilldontcareaboutcookies/latest.xpi";
|
||||||
installation_mode = "force_installed";
|
installation_mode = "force_installed";
|
||||||
|
private_browsing = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,10 @@ in {
|
||||||
horseman.boot.greeter.greetd = {
|
horseman.boot.greeter.greetd = {
|
||||||
enable = mkEnableOption "Greetd Greeter";
|
enable = mkEnableOption "Greetd Greeter";
|
||||||
session = mkOption {type = types.str;};
|
session = mkOption {type = types.str;};
|
||||||
|
autoLogin = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -22,12 +26,23 @@ in {
|
||||||
|
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings =
|
||||||
default_session = {
|
{
|
||||||
user = homeCfg.username;
|
default_session = {
|
||||||
command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --remember-session --greeting 'Please authenticate to continue' --asterisks --asterisks-char '*' --theme 'border=74;text=cyan;prompt=green;time=cyan;action=cyan;button=cyan;container=black;input=238' --cmd ${cfg.session}";
|
user = homeCfg.username;
|
||||||
};
|
command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --remember-session --greeting 'Please authenticate to continue' --asterisks --asterisks-char '*' --theme 'border=74;text=cyan;prompt=green;time=cyan;action=cyan;button=cyan;container=black;input=238' --cmd ${cfg.session}";
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
// (
|
||||||
|
if cfg.autoLogin
|
||||||
|
then {
|
||||||
|
initial_session = {
|
||||||
|
user = homeCfg.username;
|
||||||
|
command = cfg.session;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {}
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.greetd.serviceConfig = {
|
systemd.services.greetd.serviceConfig = {
|
||||||
|
|
|
||||||
|
|
@ -9,324 +9,532 @@
|
||||||
|
|
||||||
flavors = {
|
flavors = {
|
||||||
mocha = {
|
mocha = {
|
||||||
rosewater = "#f5e0dc";
|
rosewater = {
|
||||||
rosewater-rgb = "rgb(245, 224, 220)";
|
red = 245;
|
||||||
rosewater-hsl = "hsl(10, 56%, 91%)";
|
green = 224;
|
||||||
flamingo = "#f2cdcd";
|
blue = 220;
|
||||||
flamingo-rgb = "rgb(242, 205, 205)";
|
};
|
||||||
flamingo-hsl = "hsl(0, 59%, 88%)";
|
flamingo = {
|
||||||
pink = "#f5c2e7";
|
red = 242;
|
||||||
pink-rgb = "rgb(245, 194, 231)";
|
green = 205;
|
||||||
pink-hsl = "hsl(316, 72%, 86%)";
|
blue = 205;
|
||||||
mauve = "#cba6f7";
|
};
|
||||||
mauve-rgb = "rgb(203, 166, 247)";
|
pink = {
|
||||||
mauve-hsl = "hsl(267, 84%, 81%)";
|
red = 245;
|
||||||
red = "#f38ba8";
|
green = 194;
|
||||||
red-rgb = "rgb(243, 139, 168)";
|
blue = 231;
|
||||||
red-hsl = "hsl(343, 81%, 75%)";
|
};
|
||||||
maroon = "#eba0ac";
|
mauve = {
|
||||||
maroon-rgb = "rgb(235, 160, 172)";
|
red = 203;
|
||||||
maroon-hsl = "hsl(350, 65%, 77%)";
|
green = 166;
|
||||||
peach = "#fab387";
|
blue = 247;
|
||||||
peach-rgb = "rgb(250, 179, 135)";
|
};
|
||||||
peach-hsl = "hsl(23, 92%, 75%)";
|
red = {
|
||||||
yellow = "#f9e2af";
|
red = 243;
|
||||||
yellow-rgb = "rgb(249, 226, 175)";
|
green = 139;
|
||||||
yellow-hsl = "hsl(41, 86%, 83%)";
|
blue = 168;
|
||||||
green = "#a6e3a1";
|
};
|
||||||
green-rgb = "rgb(166, 227, 161)";
|
maroon = {
|
||||||
green-hsl = "hsl(115, 54%, 76%)";
|
red = 235;
|
||||||
teal = "#94e2d5";
|
green = 160;
|
||||||
teal-rgb = "rgb(148, 226, 213)";
|
blue = 172;
|
||||||
teal-hsl = "hsl(170, 57%, 73%)";
|
};
|
||||||
sky = "#89dceb";
|
peach = {
|
||||||
sky-rgb = "rgb(137, 220, 235)";
|
red = 250;
|
||||||
sky-hsl = "hsl(189, 71%, 73%)";
|
green = 179;
|
||||||
sapphire = "#74c7ec";
|
blue = 135;
|
||||||
sapphire-rgb = "rgb(116, 199, 236)";
|
};
|
||||||
sapphire-hsl = "hsl(199, 76%, 69%)";
|
yellow = {
|
||||||
blue = "#89b4fa";
|
red = 249;
|
||||||
blue-rgb = "rgb(137, 180, 250)";
|
green = 226;
|
||||||
blue-hsl = "hsl(217, 92%, 76%)";
|
blue = 175;
|
||||||
lavender = "#b4befe";
|
};
|
||||||
lavender-rgb = "rgb(180, 190, 254)";
|
green = {
|
||||||
lavender-hsl = "hsl(232, 97%, 85%)";
|
red = 166;
|
||||||
text = "#cdd6f4";
|
green = 227;
|
||||||
text-rgb = "rgb(205, 214, 244)";
|
blue = 161;
|
||||||
text-hsl = "hsl(226, 64%, 88%)";
|
};
|
||||||
subtext1 = "#bac2de";
|
teal = {
|
||||||
subtext1-rgb = "rgb(186, 194, 222)";
|
red = 148;
|
||||||
subtext1-hsl = "hsl(227, 35%, 80%)";
|
green = 226;
|
||||||
subtext0 = "#a6adc8";
|
blue = 213;
|
||||||
subtext0-rgb = "rgb(166, 173, 200)";
|
};
|
||||||
subtext0-hsl = "hsl(228, 24%, 72%)";
|
sky = {
|
||||||
overlay2 = "#9399b2";
|
red = 137;
|
||||||
overlay2-rgb = "rgb(147, 153, 178)";
|
green = 220;
|
||||||
overlay2-hsl = "hsl(228, 17%, 64%)";
|
blue = 235;
|
||||||
overlay1 = "#7f849c";
|
};
|
||||||
overlay1-rgb = "rgb(127, 132, 156)";
|
sapphire = {
|
||||||
overlay1-hsl = "hsl(230, 13%, 55%)";
|
red = 116;
|
||||||
overlay0 = "#6c7086";
|
green = 199;
|
||||||
overlay0-rgb = "rgb(108, 112, 134)";
|
blue = 236;
|
||||||
overlay0-hsl = "hsl(231, 11%, 47%)";
|
};
|
||||||
surface2 = "#585b70";
|
blue = {
|
||||||
surface2-rgb = "rgb(88, 91, 112)";
|
red = 137;
|
||||||
surface2-hsl = "hsl(233, 12%, 39%)";
|
green = 180;
|
||||||
surface1 = "#45475a";
|
blue = 250;
|
||||||
surface1-rgb = "rgb(69, 71, 90)";
|
};
|
||||||
surface1-hsl = "hsl(234, 13%, 31%)";
|
lavender = {
|
||||||
surface0 = "#313244";
|
red = 180;
|
||||||
surface0-rgb = "rgb(49, 50, 68)";
|
green = 190;
|
||||||
surface0-hsl = "hsl(237, 16%, 23%)";
|
blue = 254;
|
||||||
base = "#1e1e2e";
|
};
|
||||||
base-rgb = "rgb(30, 30, 46)";
|
text = {
|
||||||
base-hsl = "hsl(240, 21%, 15%)";
|
red = 205;
|
||||||
mantle = "#181825";
|
green = 214;
|
||||||
mantle-rgb = "rgb(24, 24, 37)";
|
blue = 244;
|
||||||
mantle-hsl = "hsl(240, 21%, 12%)";
|
};
|
||||||
crust = "#11111b";
|
subtext1 = {
|
||||||
crust-rgb = "rgb(17, 17, 27)";
|
red = 186;
|
||||||
crust-hsl = "hsl(240, 23%, 9%)";
|
green = 194;
|
||||||
|
blue = 222;
|
||||||
|
};
|
||||||
|
subtext0 = {
|
||||||
|
red = 166;
|
||||||
|
green = 173;
|
||||||
|
blue = 200;
|
||||||
|
};
|
||||||
|
overlay2 = {
|
||||||
|
red = 147;
|
||||||
|
green = 153;
|
||||||
|
blue = 178;
|
||||||
|
};
|
||||||
|
overlay1 = {
|
||||||
|
red = 127;
|
||||||
|
green = 132;
|
||||||
|
blue = 156;
|
||||||
|
};
|
||||||
|
overlay0 = {
|
||||||
|
red = 108;
|
||||||
|
green = 112;
|
||||||
|
blue = 134;
|
||||||
|
};
|
||||||
|
surface2 = {
|
||||||
|
red = 88;
|
||||||
|
green = 91;
|
||||||
|
blue = 112;
|
||||||
|
};
|
||||||
|
surface1 = {
|
||||||
|
red = 69;
|
||||||
|
green = 71;
|
||||||
|
blue = 90;
|
||||||
|
};
|
||||||
|
surface0 = {
|
||||||
|
red = 49;
|
||||||
|
green = 50;
|
||||||
|
blue = 68;
|
||||||
|
};
|
||||||
|
base = {
|
||||||
|
red = 30;
|
||||||
|
green = 30;
|
||||||
|
blue = 46;
|
||||||
|
};
|
||||||
|
mantle = {
|
||||||
|
red = 24;
|
||||||
|
green = 24;
|
||||||
|
blue = 37;
|
||||||
|
};
|
||||||
|
crust = {
|
||||||
|
red = 17;
|
||||||
|
green = 17;
|
||||||
|
blue = 27;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
macchiato = {
|
macchiato = {
|
||||||
rosewater = "#f4dbd6";
|
rosewater = {
|
||||||
rosewater-rgb = "rgb(244, 219, 214)";
|
red = 244;
|
||||||
rosewater-hsl = "hsl(10, 58%, 90%)";
|
green = 219;
|
||||||
flamingo = "#f0c6c6";
|
blue = 214;
|
||||||
flamingo-rgb = "rgb(240, 198, 198)";
|
};
|
||||||
flamingo-hsl = "hsl(0, 58%, 86%)";
|
flamingo = {
|
||||||
pink = "#f5bde6";
|
red = 240;
|
||||||
pink-rgb = "rgb(245, 189, 230)";
|
green = 198;
|
||||||
pink-hsl = "hsl(316, 74%, 85%)";
|
blue = 198;
|
||||||
mauve = "#c6a0f6";
|
};
|
||||||
mauve-rgb = "rgb(198, 160, 246)";
|
pink = {
|
||||||
mauve-hsl = "hsl(267, 83%, 80%)";
|
red = 245;
|
||||||
red = "#ed8796";
|
green = 189;
|
||||||
red-rgb = "rgb(237, 135, 150)";
|
blue = 230;
|
||||||
red-hsl = "hsl(351, 74%, 73%)";
|
};
|
||||||
maroon = "#ee99a0";
|
mauve = {
|
||||||
maroon-rgb = "rgb(238, 153, 160)";
|
red = 198;
|
||||||
maroon-hsl = "hsl(355, 71%, 77%)";
|
green = 160;
|
||||||
peach = "#f5a97f";
|
blue = 246;
|
||||||
peach-rgb = "rgb(245, 169, 127)";
|
};
|
||||||
peach-hsl = "hsl(21, 86%, 73%)";
|
red = {
|
||||||
yellow = "#eed49f";
|
red = 237;
|
||||||
yellow-rgb = "rgb(238, 212, 159)";
|
green = 135;
|
||||||
yellow-hsl = "hsl(40, 70%, 78%)";
|
blue = 150;
|
||||||
green = "#a6da95";
|
};
|
||||||
green-rgb = "rgb(166, 218, 149)";
|
maroon = {
|
||||||
green-hsl = "hsl(105, 48%, 72%)";
|
red = 238;
|
||||||
teal = "#8bd5ca";
|
green = 153;
|
||||||
teal-rgb = "rgb(139, 213, 202)";
|
blue = 160;
|
||||||
teal-hsl = "hsl(171, 47%, 69%)";
|
};
|
||||||
sky = "#91d7e3";
|
peach = {
|
||||||
sky-rgb = "rgb(145, 215, 227)";
|
red = 245;
|
||||||
sky-hsl = "hsl(189, 59%, 73%)";
|
green = 169;
|
||||||
sapphire = "#7dc4e4";
|
blue = 127;
|
||||||
sapphire-rgb = "rgb(125, 196, 228)";
|
};
|
||||||
sapphire-hsl = "hsl(199, 66%, 69%)";
|
yellow = {
|
||||||
blue = "#8aadf4";
|
red = 238;
|
||||||
blue-rgb = "rgb(138, 173, 244)";
|
green = 212;
|
||||||
blue-hsl = "hsl(220, 83%, 75%)";
|
blue = 159;
|
||||||
lavender = "#b7bdf8";
|
};
|
||||||
lavender-rgb = "rgb(183, 189, 248)";
|
green = {
|
||||||
lavender-hsl = "hsl(234, 82%, 85%)";
|
red = 166;
|
||||||
text = "#cad3f5";
|
green = 218;
|
||||||
text-rgb = "rgb(202, 211, 245)";
|
blue = 149;
|
||||||
text-hsl = "hsl(227, 68%, 88%)";
|
};
|
||||||
subtext1 = "#b8c0e0";
|
teal = {
|
||||||
subtext1-rgb = "rgb(184, 192, 224)";
|
red = 139;
|
||||||
subtext1-hsl = "hsl(228, 39%, 80%)";
|
green = 213;
|
||||||
subtext0 = "#a5adcb";
|
blue = 202;
|
||||||
subtext0-rgb = "rgb(165, 173, 203)";
|
};
|
||||||
subtext0-hsl = "hsl(227, 27%, 72%)";
|
sky = {
|
||||||
overlay2 = "#939ab7";
|
red = 145;
|
||||||
overlay2-rgb = "rgb(147, 154, 183)";
|
green = 215;
|
||||||
overlay2-hsl = "hsl(228, 20%, 65%)";
|
blue = 227;
|
||||||
overlay1 = "#8087a2";
|
};
|
||||||
overlay1-rgb = "rgb(128, 135, 162)";
|
sapphire = {
|
||||||
overlay1-hsl = "hsl(228, 15%, 57%)";
|
red = 125;
|
||||||
overlay0 = "#6e738d";
|
green = 196;
|
||||||
overlay0-rgb = "rgb(110, 115, 141)";
|
blue = 228;
|
||||||
overlay0-hsl = "hsl(230, 12%, 49%)";
|
};
|
||||||
surface2 = "#5b6078";
|
blue = {
|
||||||
surface2-rgb = "rgb(91, 96, 120)";
|
red = 138;
|
||||||
surface2-hsl = "hsl(230, 14%, 41%)";
|
green = 173;
|
||||||
surface1 = "#494d64";
|
blue = 244;
|
||||||
surface1-rgb = "rgb(73, 77, 100)";
|
};
|
||||||
surface1-hsl = "hsl(231, 16%, 34%)";
|
lavender = {
|
||||||
surface0 = "#363a4f";
|
red = 183;
|
||||||
surface0-rgb = "rgb(54, 58, 79)";
|
green = 189;
|
||||||
surface0-hsl = "hsl(230, 19%, 26%)";
|
blue = 248;
|
||||||
base = "#24273a";
|
};
|
||||||
base-rgb = "rgb(36, 39, 58)";
|
text = {
|
||||||
base-hsl = "hsl(232, 23%, 18%)";
|
red = 202;
|
||||||
mantle = "#1e2030";
|
green = 211;
|
||||||
mantle-rgb = "rgb(30, 32, 48)";
|
blue = 245;
|
||||||
mantle-hsl = "hsl(233, 23%, 15%)";
|
};
|
||||||
crust = "#181926";
|
subtext1 = {
|
||||||
crust-rgb = "rgb(24, 25, 38)";
|
red = 184;
|
||||||
crust-hsl = "hsl(236, 23%, 12%)";
|
green = 192;
|
||||||
|
blue = 224;
|
||||||
|
};
|
||||||
|
subtext0 = {
|
||||||
|
red = 165;
|
||||||
|
green = 173;
|
||||||
|
blue = 203;
|
||||||
|
};
|
||||||
|
overlay2 = {
|
||||||
|
red = 147;
|
||||||
|
green = 154;
|
||||||
|
blue = 183;
|
||||||
|
};
|
||||||
|
overlay1 = {
|
||||||
|
red = 128;
|
||||||
|
green = 135;
|
||||||
|
blue = 162;
|
||||||
|
};
|
||||||
|
overlay0 = {
|
||||||
|
red = 110;
|
||||||
|
green = 115;
|
||||||
|
blue = 141;
|
||||||
|
};
|
||||||
|
surface2 = {
|
||||||
|
red = 91;
|
||||||
|
green = 96;
|
||||||
|
blue = 120;
|
||||||
|
};
|
||||||
|
surface1 = {
|
||||||
|
red = 73;
|
||||||
|
green = 77;
|
||||||
|
blue = 100;
|
||||||
|
};
|
||||||
|
surface0 = {
|
||||||
|
red = 54;
|
||||||
|
green = 58;
|
||||||
|
blue = 79;
|
||||||
|
};
|
||||||
|
base = {
|
||||||
|
red = 36;
|
||||||
|
green = 39;
|
||||||
|
blue = 58;
|
||||||
|
};
|
||||||
|
mantle = {
|
||||||
|
red = 30;
|
||||||
|
green = 32;
|
||||||
|
blue = 48;
|
||||||
|
};
|
||||||
|
crust = {
|
||||||
|
red = 24;
|
||||||
|
green = 25;
|
||||||
|
blue = 38;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
frappe = {
|
frappe = {
|
||||||
rosewater = "#f2d5cf";
|
rosewater = {
|
||||||
rosewater-rgb = "rgb(242, 213, 207)";
|
red = 242;
|
||||||
rosewater-hsl = "hsl(10, 57%, 88%)";
|
green = 213;
|
||||||
flamingo = "#eebebe";
|
blue = 207;
|
||||||
flamingo-rgb = "rgb(238, 190, 190)";
|
};
|
||||||
flamingo-hsl = "hsl(0, 59%, 84%)";
|
flamingo = {
|
||||||
pink = "#f4b8e4";
|
red = 238;
|
||||||
pink-rgb = "rgb(244, 184, 228)";
|
green = 190;
|
||||||
pink-hsl = "hsl(316, 73%, 84%)";
|
blue = 190;
|
||||||
mauve = "#ca9ee6";
|
};
|
||||||
mauve-rgb = "rgb(202, 158, 230)";
|
pink = {
|
||||||
mauve-hsl = "hsl(277, 59%, 76%)";
|
red = 244;
|
||||||
red = "#e78284";
|
green = 184;
|
||||||
red-rgb = "rgb(231, 130, 132)";
|
blue = 228;
|
||||||
red-hsl = "hsl(359, 68%, 71%)";
|
};
|
||||||
maroon = "#ea999c";
|
mauve = {
|
||||||
maroon-rgb = "rgb(234, 153, 156)";
|
red = 202;
|
||||||
maroon-hsl = "hsl(358, 66%, 76%)";
|
green = 158;
|
||||||
peach = "#ef9f76";
|
blue = 230;
|
||||||
peach-rgb = "rgb(239, 159, 118)";
|
};
|
||||||
peach-hsl = "hsl(20, 79%, 70%)";
|
red = {
|
||||||
yellow = "#e5c890";
|
red = 231;
|
||||||
yellow-rgb = "rgb(229, 200, 144)";
|
green = 130;
|
||||||
yellow-hsl = "hsl(40, 62%, 73%)";
|
blue = 132;
|
||||||
green = "#a6d189";
|
};
|
||||||
green-rgb = "rgb(166, 209, 137)";
|
maroon = {
|
||||||
green-hsl = "hsl(96, 44%, 68%)";
|
red = 234;
|
||||||
teal = "#81c8be";
|
green = 153;
|
||||||
teal-rgb = "rgb(129, 200, 190)";
|
blue = 156;
|
||||||
teal-hsl = "hsl(172, 39%, 65%)";
|
};
|
||||||
sky = "#99d1db";
|
peach = {
|
||||||
sky-rgb = "rgb(153, 209, 219)";
|
red = 239;
|
||||||
sky-hsl = "hsl(189, 48%, 73%)";
|
green = 159;
|
||||||
sapphire = "#85c1dc";
|
blue = 118;
|
||||||
sapphire-rgb = "rgb(133, 193, 220)";
|
};
|
||||||
sapphire-hsl = "hsl(199, 55%, 69%)";
|
yellow = {
|
||||||
blue = "#8caaee";
|
red = 229;
|
||||||
blue-rgb = "rgb(140, 170, 238)";
|
green = 200;
|
||||||
blue-hsl = "hsl(222, 74%, 74%)";
|
blue = 144;
|
||||||
lavender = "#babbf1";
|
};
|
||||||
lavender-rgb = "rgb(186, 187, 241)";
|
green = {
|
||||||
lavender-hsl = "hsl(239, 66%, 84%)";
|
red = 166;
|
||||||
text = "#c6d0f5";
|
green = 209;
|
||||||
text-rgb = "rgb(198, 208, 245)";
|
blue = 137;
|
||||||
text-hsl = "hsl(227, 70%, 87%)";
|
};
|
||||||
subtext1 = "#b5bfe2";
|
teal = {
|
||||||
subtext1-rgb = "rgb(181, 191, 226)";
|
red = 129;
|
||||||
subtext1-hsl = "hsl(227, 44%, 80%)";
|
green = 200;
|
||||||
subtext0 = "#a5adce";
|
blue = 190;
|
||||||
subtext0-rgb = "rgb(165, 173, 206)";
|
};
|
||||||
subtext0-hsl = "hsl(228, 29%, 73%)";
|
sky = {
|
||||||
overlay2 = "#949cbb";
|
red = 153;
|
||||||
overlay2-rgb = "rgb(148, 156, 187)";
|
green = 209;
|
||||||
overlay2-hsl = "hsl(228, 22%, 66%)";
|
blue = 219;
|
||||||
overlay1 = "#838ba7";
|
};
|
||||||
overlay1-rgb = "rgb(131, 139, 167)";
|
sapphire = {
|
||||||
overlay1-hsl = "hsl(227, 17%, 58%)";
|
red = 133;
|
||||||
overlay0 = "#737994";
|
green = 193;
|
||||||
overlay0-rgb = "rgb(115, 121, 148)";
|
blue = 220;
|
||||||
overlay0-hsl = "hsl(229, 13%, 52%)";
|
};
|
||||||
surface2 = "#626880";
|
blue = {
|
||||||
surface2-rgb = "rgb(98, 104, 128)";
|
red = 140;
|
||||||
surface2-hsl = "hsl(228, 13%, 44%)";
|
green = 170;
|
||||||
surface1 = "#51576d";
|
blue = 238;
|
||||||
surface1-rgb = "rgb(81, 87, 109)";
|
};
|
||||||
surface1-hsl = "hsl(227, 15%, 37%)";
|
lavender = {
|
||||||
surface0 = "#414559";
|
red = 186;
|
||||||
surface0-rgb = "rgb(65, 69, 89)";
|
green = 187;
|
||||||
surface0-hsl = "hsl(230, 16%, 30%)";
|
blue = 241;
|
||||||
base = "#303446";
|
};
|
||||||
base-rgb = "rgb(48, 52, 70)";
|
text = {
|
||||||
base-hsl = "hsl(229, 19%, 23%)";
|
red = 198;
|
||||||
mantle = "#292c3c";
|
green = 208;
|
||||||
mantle-rgb = "rgb(41, 44, 60)";
|
blue = 245;
|
||||||
mantle-hsl = "hsl(231, 19%, 20%)";
|
};
|
||||||
crust = "#232634";
|
subtext1 = {
|
||||||
crust-rgb = "rgb(35, 38, 52)";
|
red = 181;
|
||||||
crust-hsl = "hsl(229, 20%, 17%)";
|
green = 191;
|
||||||
|
blue = 226;
|
||||||
|
};
|
||||||
|
subtext0 = {
|
||||||
|
red = 165;
|
||||||
|
green = 173;
|
||||||
|
blue = 206;
|
||||||
|
};
|
||||||
|
overlay2 = {
|
||||||
|
red = 148;
|
||||||
|
green = 156;
|
||||||
|
blue = 187;
|
||||||
|
};
|
||||||
|
overlay1 = {
|
||||||
|
red = 131;
|
||||||
|
green = 139;
|
||||||
|
blue = 167;
|
||||||
|
};
|
||||||
|
overlay0 = {
|
||||||
|
red = 115;
|
||||||
|
green = 121;
|
||||||
|
blue = 148;
|
||||||
|
};
|
||||||
|
surface2 = {
|
||||||
|
red = 98;
|
||||||
|
green = 104;
|
||||||
|
blue = 128;
|
||||||
|
};
|
||||||
|
surface1 = {
|
||||||
|
red = 81;
|
||||||
|
green = 87;
|
||||||
|
blue = 109;
|
||||||
|
};
|
||||||
|
surface0 = {
|
||||||
|
red = 65;
|
||||||
|
green = 69;
|
||||||
|
blue = 89;
|
||||||
|
};
|
||||||
|
base = {
|
||||||
|
red = 48;
|
||||||
|
green = 52;
|
||||||
|
blue = 70;
|
||||||
|
};
|
||||||
|
mantle = {
|
||||||
|
red = 41;
|
||||||
|
green = 44;
|
||||||
|
blue = 60;
|
||||||
|
};
|
||||||
|
crust = {
|
||||||
|
red = 35;
|
||||||
|
green = 38;
|
||||||
|
blue = 52;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
latte = {
|
latte = {
|
||||||
rosewater = "#dc8a78";
|
rosewater = {
|
||||||
rosewater-rgb = "rgb(220, 138, 120)";
|
red = 220;
|
||||||
rosewater-hsl = "hsl(11, 59%, 67%)";
|
green = 138;
|
||||||
flamingo = "#dd7878";
|
blue = 120;
|
||||||
flamingo-rgb = "rgb(221, 120, 120)";
|
};
|
||||||
flamingo-hsl = "hsl(0, 60%, 67%)";
|
flamingo = {
|
||||||
pink = "#ea76cb";
|
red = 221;
|
||||||
pink-rgb = "rgb(234, 118, 203)";
|
green = 120;
|
||||||
pink-hsl = "hsl(316, 73%, 69%)";
|
blue = 120;
|
||||||
mauve = "#8839ef";
|
};
|
||||||
mauve-rgb = "rgb(136, 57, 239)";
|
pink = {
|
||||||
mauve-hsl = "hsl(266, 85%, 58%)";
|
red = 234;
|
||||||
red = "#d20f39";
|
green = 118;
|
||||||
red-rgb = "rgb(210, 15, 57)";
|
blue = 203;
|
||||||
red-hsl = "hsl(347, 87%, 44%)";
|
};
|
||||||
maroon = "#e64553";
|
mauve = {
|
||||||
maroon-rgb = "rgb(230, 69, 83)";
|
red = 136;
|
||||||
maroon-hsl = "hsl(355, 76%, 59%)";
|
green = 57;
|
||||||
peach = "#fe640b";
|
blue = 239;
|
||||||
peach-rgb = "rgb(254, 100, 11)";
|
};
|
||||||
peach-hsl = "hsl(22, 99%, 52%)";
|
red = {
|
||||||
yellow = "#df8e1d";
|
red = 210;
|
||||||
yellow-rgb = "rgb(223, 142, 29)";
|
green = 15;
|
||||||
yellow-hsl = "hsl(35, 77%, 49%)";
|
blue = 57;
|
||||||
green = "#40a02b";
|
};
|
||||||
green-rgb = "rgb(64, 160, 43)";
|
maroon = {
|
||||||
green-hsl = "hsl(109, 58%, 40%)";
|
red = 230;
|
||||||
teal = "#179299";
|
green = 69;
|
||||||
teal-rgb = "rgb(23, 146, 153)";
|
blue = 83;
|
||||||
teal-hsl = "hsl(183, 74%, 35%)";
|
};
|
||||||
sky = "#04a5e5";
|
peach = {
|
||||||
sky-rgb = "rgb(4, 165, 229)";
|
red = 254;
|
||||||
sky-hsl = "hsl(197, 97%, 46%)";
|
green = 100;
|
||||||
sapphire = "#209fb5";
|
blue = 11;
|
||||||
sapphire-rgb = "rgb(32, 159, 181)";
|
};
|
||||||
sapphire-hsl = "hsl(189, 70%, 42%)";
|
yellow = {
|
||||||
blue = "#1e66f5";
|
red = 223;
|
||||||
blue-rgb = "rgb(30, 102, 245)";
|
green = 142;
|
||||||
blue-hsl = "hsl(220, 91%, 54%)";
|
blue = 29;
|
||||||
lavender = "#7287fd";
|
};
|
||||||
lavender-rgb = "rgb(114, 135, 253)";
|
green = {
|
||||||
lavender-hsl = "hsl(231, 97%, 72%)";
|
red = 64;
|
||||||
text = "#4c4f69";
|
green = 160;
|
||||||
text-rgb = "rgb(76, 79, 105)";
|
blue = 43;
|
||||||
text-hsl = "hsl(234, 16%, 35%)";
|
};
|
||||||
subtext1 = "#5c5f77";
|
teal = {
|
||||||
subtext1-rgb = "rgb(92, 95, 119)";
|
red = 23;
|
||||||
subtext1-hsl = "hsl(233, 13%, 41%)";
|
green = 146;
|
||||||
subtext0 = "#6c6f85";
|
blue = 153;
|
||||||
subtext0-rgb = "rgb(108, 111, 133)";
|
};
|
||||||
subtext0-hsl = "hsl(233, 10%, 47%)";
|
sky = {
|
||||||
overlay2 = "#7c7f93";
|
red = 4;
|
||||||
overlay2-rgb = "rgb(124, 127, 147)";
|
green = 165;
|
||||||
overlay2-hsl = "hsl(232, 10%, 53%)";
|
blue = 229;
|
||||||
overlay1 = "#8c8fa1";
|
};
|
||||||
overlay1-rgb = "rgb(140, 143, 161)";
|
sapphire = {
|
||||||
overlay1-hsl = "hsl(231, 10%, 59%)";
|
red = 32;
|
||||||
overlay0 = "#9ca0b0";
|
green = 159;
|
||||||
overlay0-rgb = "rgb(156, 160, 176)";
|
blue = 181;
|
||||||
overlay0-hsl = "hsl(228, 11%, 65%)";
|
};
|
||||||
surface2 = "#acb0be";
|
blue = {
|
||||||
surface2-rgb = "rgb(172, 176, 190)";
|
red = 30;
|
||||||
surface2-hsl = "hsl(227, 12%, 71%)";
|
green = 102;
|
||||||
surface1 = "#bcc0cc";
|
blue = 245;
|
||||||
surface1-rgb = "rgb(188, 192, 204)";
|
};
|
||||||
surface1-hsl = "hsl(225, 14%, 77%)";
|
lavender = {
|
||||||
surface0 = "#ccd0da";
|
red = 114;
|
||||||
surface0-rgb = "rgb(204, 208, 218)";
|
green = 135;
|
||||||
surface0-hsl = "hsl(223, 16%, 83%)";
|
blue = 253;
|
||||||
base = "#eff1f5";
|
};
|
||||||
base-rgb = "rgb(239, 241, 245)";
|
text = {
|
||||||
base-hsl = "hsl(220, 23%, 95%)";
|
red = 76;
|
||||||
mantle = "#e6e9ef";
|
green = 79;
|
||||||
mantle-rgb = "rgb(230, 233, 239)";
|
blue = 105;
|
||||||
mantle-hsl = "hsl(220, 22%, 92%)";
|
};
|
||||||
crust = "#dce0e8";
|
subtext1 = {
|
||||||
crust-rgb = "rgb(220, 224, 232)";
|
red = 92;
|
||||||
crust-hsl = "hsl(220, 21%, 89%)";
|
green = 95;
|
||||||
|
blue = 119;
|
||||||
|
};
|
||||||
|
subtext0 = {
|
||||||
|
red = 108;
|
||||||
|
green = 111;
|
||||||
|
blue = 133;
|
||||||
|
};
|
||||||
|
overlay2 = {
|
||||||
|
red = 124;
|
||||||
|
green = 127;
|
||||||
|
blue = 147;
|
||||||
|
};
|
||||||
|
overlay1 = {
|
||||||
|
red = 140;
|
||||||
|
green = 143;
|
||||||
|
blue = 161;
|
||||||
|
};
|
||||||
|
overlay0 = {
|
||||||
|
red = 156;
|
||||||
|
green = 160;
|
||||||
|
blue = 176;
|
||||||
|
};
|
||||||
|
surface2 = {
|
||||||
|
red = 172;
|
||||||
|
green = 176;
|
||||||
|
blue = 190;
|
||||||
|
};
|
||||||
|
surface1 = {
|
||||||
|
red = 188;
|
||||||
|
green = 192;
|
||||||
|
blue = 204;
|
||||||
|
};
|
||||||
|
surface0 = {
|
||||||
|
red = 204;
|
||||||
|
green = 208;
|
||||||
|
blue = 218;
|
||||||
|
};
|
||||||
|
base = {
|
||||||
|
red = 239;
|
||||||
|
green = 241;
|
||||||
|
blue = 245;
|
||||||
|
};
|
||||||
|
mantle = {
|
||||||
|
red = 230;
|
||||||
|
green = 233;
|
||||||
|
blue = 239;
|
||||||
|
};
|
||||||
|
crust = {
|
||||||
|
red = 220;
|
||||||
|
green = 224;
|
||||||
|
blue = 232;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
|
@ -371,11 +579,23 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
colors = mkOption {
|
colors = mkOption {
|
||||||
type = types.attrsOf types.anything;
|
type = types.attrsOf (types.submodule {
|
||||||
|
options = {
|
||||||
|
red = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
};
|
||||||
|
green = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
};
|
||||||
|
blue = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config.horseman.catppuccin.colors = lib.mkDefault flavors.${cfg.flavor};
|
config.horseman.catppuccin.colors = lib.mkDefault (flavors.${cfg.flavor} // {accent = cfg.flavor.${cfg.accent};});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,10 @@ in {
|
||||||
pskRaw = "ext:psk_ruiter";
|
pskRaw = "ext:psk_ruiter";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"TMNL-6DA8C1" = {
|
||||||
|
pskRaw = "ext:psk_tmnl6da8c1";
|
||||||
|
};
|
||||||
|
|
||||||
"kargadoor" = {
|
"kargadoor" = {
|
||||||
pskRaw = "ext:psk_kargadoor";
|
pskRaw = "ext:psk_kargadoor";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -4,5 +4,6 @@
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
./tailscale.nix
|
./tailscale.nix
|
||||||
|
./printing.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
24
modules/network/printing.nix
Normal file
24
modules/network/printing.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
cfg = config.horseman.network.printing;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
horseman.network.printing = {
|
||||||
|
enable = mkEnableOption "Turns on standard printing config";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.printing.enable = true;
|
||||||
|
|
||||||
|
services.avahi = {
|
||||||
|
enable = true;
|
||||||
|
nssmdns4 = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
cfg = config.horseman.wm.hyprland;
|
cfg = config.horseman.wm.hyprland;
|
||||||
in {
|
in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
horseman.wm.hyprland.config = {
|
nix-hyprland = {
|
||||||
animations = {
|
animations = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
beziers = [
|
beziers = [
|
||||||
|
|
@ -51,103 +51,87 @@ in {
|
||||||
animations = [
|
animations = [
|
||||||
{
|
{
|
||||||
name = "global";
|
name = "global";
|
||||||
on = true;
|
|
||||||
speed = 10.0;
|
speed = 10.0;
|
||||||
curve = "default";
|
curve = "default";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "border";
|
name = "border";
|
||||||
on = true;
|
|
||||||
speed = 5.39;
|
speed = 5.39;
|
||||||
curve = "easeOutQuint";
|
curve = "easeOutQuint";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "windows";
|
name = "windows";
|
||||||
on = true;
|
|
||||||
speed = 4.79;
|
speed = 4.79;
|
||||||
curve = "easeOutQuint";
|
curve = "easeOutQuint";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "windowsIn";
|
name = "windowsIn";
|
||||||
on = true;
|
|
||||||
speed = 4.1;
|
speed = 4.1;
|
||||||
curve = "easeOutQuint";
|
curve = "easeOutQuint";
|
||||||
style = "popin 87%";
|
style = "popin 87%";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "windowsOut";
|
name = "windowsOut";
|
||||||
on = true;
|
|
||||||
speed = 1.49;
|
speed = 1.49;
|
||||||
curve = "linear";
|
curve = "linear";
|
||||||
style = "popin 87%";
|
style = "popin 87%";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "fadeIn";
|
name = "fadeIn";
|
||||||
on = true;
|
|
||||||
speed = 1.73;
|
speed = 1.73;
|
||||||
curve = "almostLinear";
|
curve = "almostLinear";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "fadeOut";
|
name = "fadeOut";
|
||||||
on = true;
|
|
||||||
speed = 1.46;
|
speed = 1.46;
|
||||||
curve = "almostLinear";
|
curve = "almostLinear";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "fade";
|
name = "fade";
|
||||||
on = true;
|
|
||||||
speed = 3.03;
|
speed = 3.03;
|
||||||
curve = "quick";
|
curve = "quick";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "layers";
|
name = "layers";
|
||||||
on = true;
|
|
||||||
speed = 3.81;
|
speed = 3.81;
|
||||||
curve = "easeOutQuint";
|
curve = "easeOutQuint";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "layersIn";
|
name = "layersIn";
|
||||||
on = true;
|
|
||||||
speed = 4.0;
|
speed = 4.0;
|
||||||
curve = "easeOutQuint";
|
curve = "easeOutQuint";
|
||||||
style = "fade";
|
style = "fade";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "layersOut";
|
name = "layersOut";
|
||||||
on = true;
|
|
||||||
speed = 1.5;
|
speed = 1.5;
|
||||||
curve = "linear";
|
curve = "linear";
|
||||||
style = "fade";
|
style = "fade";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "fadeLayersIn";
|
name = "fadeLayersIn";
|
||||||
on = true;
|
|
||||||
speed = 1.79;
|
speed = 1.79;
|
||||||
curve = "almostLinear";
|
curve = "almostLinear";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "fadeLayersOut";
|
name = "fadeLayersOut";
|
||||||
on = true;
|
|
||||||
speed = 1.39;
|
speed = 1.39;
|
||||||
curve = "almostLinear";
|
curve = "almostLinear";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "workspaces";
|
name = "workspaces";
|
||||||
on = true;
|
|
||||||
speed = 1.94;
|
speed = 1.94;
|
||||||
curve = "almostLinear";
|
curve = "almostLinear";
|
||||||
style = "fade";
|
style = "fade";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "workspacesIn";
|
name = "workspacesIn";
|
||||||
on = true;
|
|
||||||
speed = 1.21;
|
speed = 1.21;
|
||||||
curve = "almostLinear";
|
curve = "almostLinear";
|
||||||
style = "fade";
|
style = "fade";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "workspacesOut";
|
name = "workspacesOut";
|
||||||
on = true;
|
|
||||||
speed = 1.94;
|
speed = 1.94;
|
||||||
curve = "almostLinear";
|
curve = "almostLinear";
|
||||||
style = "fade";
|
style = "fade";
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption catppuccin;
|
||||||
inherit (builtins) replaceStrings;
|
|
||||||
|
|
||||||
cfg = config.horseman.wm.hyprland;
|
cfg = config.horseman.wm.hyprland;
|
||||||
colors = config.horseman.catppuccin.colors;
|
colors = config.horseman.catppuccin.colors;
|
||||||
accent = config.horseman.catppuccin.accent;
|
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./options.nix
|
./options.nix
|
||||||
|
|
@ -40,13 +38,16 @@ in {
|
||||||
playerctl # Media control
|
playerctl # Media control
|
||||||
pulsemixer # Audio frontend
|
pulsemixer # Audio frontend
|
||||||
wl-clipboard # Clipboard
|
wl-clipboard # Clipboard
|
||||||
wofi # Launcher
|
fuzzel # Launcher
|
||||||
xdg-desktop-portal-hyprland # XDG Portal (needed but idk why)
|
xdg-desktop-portal-hyprland # XDG Portal (needed but idk why)
|
||||||
];
|
];
|
||||||
|
|
||||||
horseman.hardware.keyd.enable = true;
|
horseman.hardware.keyd.enable = true;
|
||||||
|
|
||||||
horseman.wm.hyprland.config = {
|
nix-hyprland = {
|
||||||
|
enable = true;
|
||||||
|
username = config.horseman.username;
|
||||||
|
|
||||||
execOnce = [
|
execOnce = [
|
||||||
"hypridle"
|
"hypridle"
|
||||||
"hyprpaper"
|
"hyprpaper"
|
||||||
|
|
@ -55,8 +56,14 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
"XCURSOR_SIZE,24"
|
{
|
||||||
"HYPRCURSOR_SIZE,24"
|
name = "XCURSOR_SIZE";
|
||||||
|
value = "24";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "HYPRCURSOR_SIZE";
|
||||||
|
value = "24";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
windowrules = [
|
windowrules = [
|
||||||
|
|
@ -82,16 +89,16 @@ in {
|
||||||
resizeOnBorder = true;
|
resizeOnBorder = true;
|
||||||
allowTearing = false;
|
allowTearing = false;
|
||||||
|
|
||||||
col.activeBorder = replaceStrings [" "] [""] colors."${accent}-rgb";
|
col.activeBorder = catppuccin.toRGB colors.accent;
|
||||||
col.inactiveBorder = replaceStrings [" " ")" "rgb"] ["" ",0.25)" "rgba"] colors."${accent}-rgb"; # Make transparent
|
col.inactiveBorder = catppuccin.toRGBA colors.accent 0.25;
|
||||||
|
|
||||||
layout = "dwindle";
|
layout = "dwindle";
|
||||||
};
|
};
|
||||||
|
|
||||||
decoration = {
|
decoration = {
|
||||||
rounding = 10;
|
rounding = 10;
|
||||||
activeOpacity = 0.9;
|
activeOpacity = 1.0;
|
||||||
inactiveOpacity = 0.7;
|
inactiveOpacity = 0.9;
|
||||||
|
|
||||||
dimSpecial = 0.4;
|
dimSpecial = 0.4;
|
||||||
|
|
||||||
|
|
@ -134,8 +141,6 @@ in {
|
||||||
sensitivity = 0.0;
|
sensitivity = 0.0;
|
||||||
touchpad.naturalScroll = true;
|
touchpad.naturalScroll = true;
|
||||||
numlockByDefault = true;
|
numlockByDefault = true;
|
||||||
|
|
||||||
touchpad.dragLock = 1;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
group = {
|
group = {
|
||||||
|
|
@ -143,10 +148,10 @@ in {
|
||||||
dragIntoGroup = 1;
|
dragIntoGroup = 1;
|
||||||
|
|
||||||
col = {
|
col = {
|
||||||
borderActive = config.horseman.wm.hyprland.config.general.col.activeBorder; # I don't wanna believe this can't be done better :(
|
borderActive = config.nix-hyprland.general.col.activeBorder; # I don't wanna believe this can't be done better :(
|
||||||
borderInactive = config.horseman.wm.hyprland.config.general.col.inactiveBorder;
|
borderInactive = config.nix-hyprland.general.col.inactiveBorder;
|
||||||
borderLockedActive = config.horseman.wm.hyprland.config.general.col.activeBorder;
|
borderLockedActive = config.nix-hyprland.general.col.activeBorder;
|
||||||
borderLockedInactive = config.horseman.wm.hyprland.config.general.col.inactiveBorder;
|
borderLockedInactive = config.nix-hyprland.general.col.inactiveBorder;
|
||||||
};
|
};
|
||||||
|
|
||||||
groupbar = {
|
groupbar = {
|
||||||
|
|
@ -167,7 +172,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
monitors = {
|
monitors = {
|
||||||
defaultMonitor = true;
|
addDefault = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
sleep = {
|
sleep = {
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -11,230 +11,37 @@
|
||||||
|
|
||||||
cfg = config.horseman.wm.hyprland;
|
cfg = config.horseman.wm.hyprland;
|
||||||
homeCfg = config.horseman;
|
homeCfg = config.horseman;
|
||||||
|
|
||||||
keybinding = types.submodule {
|
|
||||||
options = {
|
|
||||||
flags = mkOption {
|
|
||||||
type = types.listOf (types.enum ["l" "r" "c" "g" "o" "e" "m" "t" "i" "s" "d" "p"]);
|
|
||||||
};
|
|
||||||
|
|
||||||
mods = mkOption {
|
|
||||||
type = types.listOf types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
key = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
dispatcher = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
params = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
submapKeybinding = types.submodule {
|
|
||||||
options = {
|
|
||||||
flags = mkOption {
|
|
||||||
type = types.listOf (types.enum ["l" "r" "c" "g" "o" "e" "m" "t" "i" "s" "d" "p"]);
|
|
||||||
};
|
|
||||||
|
|
||||||
mods = mkOption {
|
|
||||||
type = types.listOf types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
key = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
vec2 = types.submodule {
|
|
||||||
options = {
|
|
||||||
x = mkOption {type = types.int;};
|
|
||||||
y = mkOption {type = types.int;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
fontWeight = types.enum ["thin" "ultralight" "light" "semilight" "book" "normal" "medium" "semibold" "bold" "ultrabold" "heavy" "ultraheavy"];
|
|
||||||
in {
|
in {
|
||||||
options.horseman.wm.hyprland.config = {
|
options.horseman.wm.hyprland.config.waybar = {
|
||||||
execOnce = mkOption {
|
layout = {
|
||||||
type = types.listOf types.str;
|
horizontal = {
|
||||||
default = [];
|
left = mkOption {type = types.listOf types.str;};
|
||||||
};
|
center = mkOption {type = types.listOf types.str;};
|
||||||
env = mkOption {
|
right = mkOption {type = types.listOf types.str;};
|
||||||
type = types.listOf types.str;
|
|
||||||
default = [];
|
|
||||||
};
|
|
||||||
windowrules = mkOption {
|
|
||||||
type = types.listOf types.str;
|
|
||||||
default = [];
|
|
||||||
};
|
|
||||||
workspaces = mkOption {
|
|
||||||
type = types.listOf types.str;
|
|
||||||
default = [];
|
|
||||||
};
|
|
||||||
|
|
||||||
animations = {
|
|
||||||
beziers = mkOption {
|
|
||||||
type = types.listOf (types.submodule {
|
|
||||||
options = {
|
|
||||||
name = mkOption {type = types.str;};
|
|
||||||
startX = mkOption {type = types.number;};
|
|
||||||
startY = mkOption {type = types.number;};
|
|
||||||
endX = mkOption {type = types.number;};
|
|
||||||
endY = mkOption {type = types.number;};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
vertical = {
|
||||||
animations = mkOption {
|
left = mkOption {type = types.listOf types.str;};
|
||||||
type = types.listOf (types.submodule {
|
center = mkOption {type = types.listOf types.str;};
|
||||||
options = {
|
right = mkOption {type = types.listOf types.str;};
|
||||||
name = mkOption {type = types.str;};
|
|
||||||
on = mkOption {type = types.bool;};
|
|
||||||
speed = mkOption {
|
|
||||||
type = types.number;
|
|
||||||
default = 0;
|
|
||||||
};
|
|
||||||
curve = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
style = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
formats = {
|
||||||
dwindle = {
|
horizontal = mkOption {
|
||||||
pseudotile = mkOption {type = types.bool;};
|
|
||||||
preserveSplit = mkOption {type = types.bool;};
|
|
||||||
};
|
|
||||||
|
|
||||||
master = {
|
|
||||||
newStatus = mkOption {type = types.enum ["master" "slave" "inherit"];};
|
|
||||||
};
|
|
||||||
|
|
||||||
monitors = {
|
|
||||||
defaultMonitor = mkOption {type = types.bool;};
|
|
||||||
bindWorkspaces = mkOption {
|
|
||||||
type = types.enum ["no" "interlaced"];
|
|
||||||
default = "no";
|
|
||||||
};
|
|
||||||
|
|
||||||
displays = mkOption {
|
|
||||||
type = types.listOf (types.submodule {
|
|
||||||
options = {
|
|
||||||
output = mkOption {type = types.str;};
|
|
||||||
resolution = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "highres";
|
|
||||||
};
|
|
||||||
refreshRate = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "highrr";
|
|
||||||
};
|
|
||||||
x = mkOption {type = types.int;};
|
|
||||||
y = mkOption {type = types.int;};
|
|
||||||
scale = mkOption {
|
|
||||||
type = types.number;
|
|
||||||
default = 1;
|
|
||||||
};
|
|
||||||
transform = mkOption {
|
|
||||||
type = types.enum [0 1 2 3 4 5 6 7];
|
|
||||||
default = 0;
|
|
||||||
};
|
|
||||||
wallpaper = mkOption {
|
|
||||||
type = types.nullOr types.path;
|
|
||||||
default = null;
|
|
||||||
};
|
|
||||||
bar = mkOption {
|
|
||||||
type = types.enum ["" "left" "right" "top" "bottom"];
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
keybindings = {
|
|
||||||
binds = mkOption {type = types.listOf keybinding;};
|
|
||||||
|
|
||||||
submaps = mkOption {
|
|
||||||
type = types.listOf (types.submodule {
|
|
||||||
options = {
|
|
||||||
name = mkOption {type = types.str;};
|
|
||||||
enterBind = mkOption {type = submapKeybinding;};
|
|
||||||
exitBind = mkOption {type = submapKeybinding;};
|
|
||||||
binds = mkOption {type = types.listOf keybinding;};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
sleep = {
|
|
||||||
lockCommand = mkOption {type = types.str;};
|
|
||||||
|
|
||||||
listeners = mkOption {
|
|
||||||
type = types.listOf (types.submodule {
|
|
||||||
options = {
|
|
||||||
timeout = mkOption {type = types.ints.positive;};
|
|
||||||
onTimeout = mkOption {type = types.str;};
|
|
||||||
onResume = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
ignoreInhibit = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
waybar = {
|
|
||||||
layout = {
|
|
||||||
horizontal = {
|
|
||||||
left = mkOption {type = types.listOf types.str;};
|
|
||||||
center = mkOption {type = types.listOf types.str;};
|
|
||||||
right = mkOption {type = types.listOf types.str;};
|
|
||||||
};
|
|
||||||
vertical = {
|
|
||||||
left = mkOption {type = types.listOf types.str;};
|
|
||||||
center = mkOption {type = types.listOf types.str;};
|
|
||||||
right = mkOption {type = types.listOf types.str;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
formats = {
|
|
||||||
horizontal = mkOption {
|
|
||||||
type = types.attrs;
|
|
||||||
};
|
|
||||||
vertical = mkOption {
|
|
||||||
type = types.attrs;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
modules = mkOption {
|
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
};
|
};
|
||||||
|
vertical = mkOption {
|
||||||
|
type = types.attrs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
modules = mkOption {
|
||||||
|
type = types.attrs;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
horseman.dots = {
|
horseman.dots = {
|
||||||
wofi.enable = true;
|
fuzzel.enable = true;
|
||||||
waybar.enable = true;
|
waybar.enable = true;
|
||||||
hypr = {
|
|
||||||
hyprland.enable = true;
|
|
||||||
hypridle.enable = true;
|
|
||||||
hyprpaper.enable = true;
|
|
||||||
hyprlock.enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.${homeCfg.username} = {
|
home-manager.users.${homeCfg.username} = {
|
||||||
|
|
@ -248,7 +55,7 @@ in {
|
||||||
if (disp.bar == location)
|
if (disp.bar == location)
|
||||||
then disp.output
|
then disp.output
|
||||||
else null)
|
else null)
|
||||||
cfg.config.monitors.displays
|
config.nix-hyprland.monitors.displays
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
in {
|
in {
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,21 @@
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IC9tczZkdyBaZjlp
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IC9tczZkdyAybnc2
|
||||||
Qi80a2lrUFBUT05KUVk2RVI3ZW5kZzVURldwRWJLenBVdkFobmhZCkcrRmlEWWRq
|
YTBRMUpRT0E3alBWZXlieDlWK3crVkg1aGFLcEJKWXdQeHVwYlFNClN0VEYwQ216
|
||||||
akEwaVhxVlVWWG1qaUdkY04wK05IWDJodHFxSEJYOFFheGcKLT4gc3NoLWVkMjU1
|
UFB2dzEwTlY1K1NTSHJXMEZTNlRZWGRRQ0tuejBZTUs1Z1kKLT4gc3NoLWVkMjU1
|
||||||
MTkgZ1BJZFpBIDdkT1NjVitRQWJWOFV2WHVEcDdOL253MHRNcWhsYTkrUG5kQVFK
|
MTkgZ1BJZFpBIGdhQmk1ZmpCR2xKSmE4RklWb0dZd2d6OHh0ZVVTR2xRV25GdmFH
|
||||||
cFZXbFUKOXlQa1RENzQxYkRaUXZPdGdoeVp2bEhMeWJ2dWpON1JuazV1cmdLRk9O
|
aFRRbkEKcHViTHQvMm4ydm1MeVo2aEpJQ0VWZlJCamhVZkJoZ1I1L1o3bFdhdEdp
|
||||||
QQotPiBzc2gtZWQyNTUxOSBXeUlGekEgZHZSQXZhdVJldU43aGUvRE92RDlJQ2ha
|
YwotPiBzc2gtZWQyNTUxOSBXeUlGekEgK2VMd25EOUp5S0pDSlNMTFZkenlXd09W
|
||||||
U3JCOXRjZkhCZnduNURWTjF3MAprZWczQXhWTjY0dldTMXd0RmlXSUhVOHhhTElH
|
eG5CS2FCWUE2azBicGZ3MHIxYwpNKy9ySUcrUWlLM0hhQXIrTy9QQkhleUhSTUN0
|
||||||
YVRNZkZaN1VFeDhOcDFRCi0+IHNzaC1lZDI1NTE5IGRiT2VoQSBBWWlzQUV2RWxv
|
bmRIR2d2ZjFOR2lCV3M4Ci0+IHNzaC1lZDI1NTE5IGRiT2VoQSBhdzdGZHNOemZt
|
||||||
ZXFQOFJaR0FYSS9sRjZhdUZhOWE1OTBxTTNPTkZSUmx3CkdSTHRrSjJQOXBiWXBO
|
dFFxWnhpeFZ5aFRydWhPMXMrWHl0Ny9FNFhlTmtLQzJ3CmtHWWdldlVMdkg2aFgv
|
||||||
eUtvMjZlM25KNXU4dDYwaVB2cEkzMHJnVVBFbG8KLT4gc3NoLWVkMjU1MTkgdHYv
|
MDJHWEFySzI0VEhGaHd2VnVEcVUzU1JJbFF4dzAKLT4gc3NoLWVkMjU1MTkgdHYv
|
||||||
Q3pnIFVOMTVjSGFncHZxMkhyMzZ6V2FwaXZGNFBKODMrcnA3d3hlRERVRUduRVEK
|
Q3pnIHlWRDUwcTlKRnd0N0VpUWJPd2UwYzBYc1JvbFVnRXlicVROSGZTZytvbTAK
|
||||||
TzdKc291QTBMSzYrcURMUEFQd3dEUk9vYVJPMWdhWnFWaFIxK3ZCZFMzZwotPiB+
|
SWVBRmVPbDUyVVV0N1daNmpLQjVESm1ZL0xZcTZGT0RGbEJmRW02alcvZwotPiAu
|
||||||
VCR2TTMvLWdyZWFzZQp5NEx4SHNOMlBXZ0xrc1lUZWc4WWV2RERJUQotLS0gZ01P
|
Pi1ncmVhc2UgaXlfYyFzCk83RXV4clFtZ29ZdUw0OFVEZE5LR2ZEb2lCWjZqcGsK
|
||||||
V2Z5WGFKclFhTm8wekVmZllQSnhwaW9MbzJPSVIyWkJta3Z6SStHNAo9+mXqaBH3
|
LS0tIEtBUnpnL2sxR3VZWCswTEJ4cGg2RXhDZndxaVdXVUFhQWc3d1hYL284OHcK
|
||||||
yQaKE5s6TPR6AMf4ZqZ3/TtMmruR9O0Lv6uWtvE3nf1b+QobKhFmUX/J+bX9eHI3
|
s1JLJWVTPMOkTdwQ9KjP8X/J+J9dpRM9TC7/9KzupLTni5iuaDuHu4yqcEreBZR6
|
||||||
JxSKc6Xg8uCdfaD+vqtqbbbW9uXv2LAIOuFCVqDcEHFlt5dBIhUB5jvWd0igdI+F
|
9bDLNACBMDucZNy2XGSg2zE16fFQM584rcvHZ8Hvn0Ju+heMjvjKwkAJ6hSapZa+
|
||||||
C++o85pzminNN79bFGwqhJ6yUHhE+vsOaPGCE9pLooXRm4uFbecX2gXU28ftUErC
|
LrQaHx8JeFgaH+aXMbi7Ysz3lbKwhecyG8tSG/KocoSXWOehp+BGPeLIX02G2a2r
|
||||||
dX9U3G2kdJj5+6RE+oeyyDapjQWyaPCzT5i08HyGx+p2gtUW6BWM705y
|
g0KtTNNGWEaar10PNTkYQlxyQG5y9gugLWsfiwB1LjSc+ZZJVIpMRmyFo1ekfus2
|
||||||
|
Db3jUp+de9+lxetURzUVWO7biPRha3WnS/1I
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue