Compare commits
68 commits
Author | SHA1 | Date | |
---|---|---|---|
5fea400025 | |||
21493a346a | |||
84ad7020b7 | |||
4d1a534055 | |||
dd4dc5eadf | |||
72b5ec72f2 | |||
a4115f7023 | |||
fdbde9a5ae | |||
893ff55487 | |||
92371c86bf | |||
d7e5280f4f | |||
c2fe2dbc78 | |||
50d1153f78 | |||
ba2b3a4fe6 | |||
158feb5d5a | |||
94792ab8e0 | |||
08b0c85ddf | |||
47ce63805f | |||
bb619f9226 | |||
d5effed1dc | |||
7cb6a45906 | |||
5a03dedcc0 | |||
19832c3a40 | |||
bcf76c58cc | |||
31cb7796a8 | |||
46c9d96116 | |||
7e72f42d43 | |||
8ca79fab27 | |||
483c916dfa | |||
189061328b | |||
7f3126bfd2 | |||
61d0b58861 | |||
278ac18a5a | |||
906d97998d | |||
c257089fbf | |||
d0edfaddd7 | |||
483e01cc6d | |||
d1ed5b73cb | |||
668902c9ba | |||
e2f0d0a00a | |||
4a661ca081 | |||
50133672a9 | |||
c359a986a8 | |||
1162fd96c0 | |||
bd25c63c4b | |||
efade93126 | |||
1b0f7f3984 | |||
ba6a845e8b | |||
fa11adab6b | |||
49534c199c | |||
7af2b36714 | |||
2306935b0d | |||
d5e627a3b5 | |||
30652889e1 | |||
407588e9f0 | |||
6b0259dc43 | |||
a20846e699 | |||
edaa1e6b8b | |||
57ed9cb7da | |||
19f1cb7780 | |||
79e0224846 | |||
2c007f4ff5 | |||
2472cc0a15 | |||
c77271a74d | |||
12956729b6 | |||
1e603bb6b4 | |||
6f327ab3ac | |||
e89f973696 |
19 changed files with 1852 additions and 166 deletions
builders.nixflake.lockflake.nix
home
hosts
modules
secrets.yaml
|
@ -12,6 +12,8 @@ let
|
|||
|
||||
inputs.zdwl.overlays.default
|
||||
|
||||
inputs.frc-nix.overlays.default
|
||||
|
||||
(final: prev: ({
|
||||
star-citizen = inputs.nix-gaming.packages.${prev.system}.star-citizen;
|
||||
}))
|
||||
|
|
948
flake.lock
948
flake.lock
File diff suppressed because it is too large
Load diff
41
flake.nix
41
flake.nix
|
@ -2,29 +2,46 @@
|
|||
description = "snowhawk: a nixos configuration flake";
|
||||
|
||||
inputs = {
|
||||
# Nix
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
lix-module = { url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
neovim-overlay = { url = "github:nix-community/neovim-nightly-overlay"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
sops-nix = { url = "github:mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
dunst-theme = { url = "github:d2718nis/rose-pine-dunst"; flake = false; };
|
||||
niri = { url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
nix-gaming.url = "github:fufexan/nix-gaming";
|
||||
|
||||
nh = { url = "github:viperML/nh"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
|
||||
nix-darwin = { url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
# Desktop
|
||||
hyprland = { url = "github:hyprwm/Hyprland"; };
|
||||
hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; };
|
||||
split-monitor-workspaces = { url = "github:Duckonaut/split-monitor-workspaces"; inputs.hyprland.follows = "hyprland"; };
|
||||
anyrun = { url = "github:anyrun-org/anyrun"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
niri = { url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
|
||||
# Themeing
|
||||
dunst-theme = { url = "github:d2718nis/rose-pine-dunst"; flake = false; };
|
||||
fish_theme = { url = "git+https://git.zynh.me/Zynh0722/omf-theme"; flake = false; };
|
||||
backgrounds = { url = "git+https://git.zynh.me/Zynh0722/backgrounds"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
rose-pine-swaync = { url = "github:rose-pine/swaync"; flake = false; };
|
||||
rose-pine-hyprcursor = { url = "github:ndom91/rose-pine-hyprcursor"; inputs.nixpkgs.follows = "nixpkgs"; inputs.hyprlang.follows = "hyprland/hyprlang"; };
|
||||
|
||||
# Owie Sharp
|
||||
neovim-overlay = { url = "github:nix-community/neovim-nightly-overlay"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
|
||||
# Some of my stuff
|
||||
repo-clone.url = "git+https://git.zynh.me/Zynh0722/repo-clone";
|
||||
zdwm = { url = "git+https://git.zynh.me/Zynh0722/dwm?ref=preanybar-systray"; flake = false; };
|
||||
zdwl = { url = "git+https://git.zynh.me/Zynh0722/dwl?ref=0.7"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
fish_theme = { url = "git+https://git.zynh.me/Zynh0722/omf-theme"; flake = false; };
|
||||
backgrounds = { url = "git+https://git.zynh.me/Zynh0722/backgrounds"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
umu = { url = "github:Open-Wine-Components/umu-launcher?dir=packaging/nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
|
||||
nixos-apple-silicon = { url = "github:tpwrules/nixos-apple-silicon"; };
|
||||
asahi-firmware = { url = "/boot/asahi"; flake = false; };
|
||||
# aarch
|
||||
nix-darwin = { url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
nixos-apple-silicon = { url = "github:Lederstrumpf/nixos-apple-silicon/mesa-changes"; };
|
||||
|
||||
# FRC
|
||||
frc-nix = { url = "github:Zynh0722/frc-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
|
||||
# Gaming
|
||||
umu = { url = "github:Open-Wine-Components/umu-launcher?dir=packaging/nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
nix-gaming.url = "github:fufexan/nix-gaming";
|
||||
|
||||
deploy-rs = { url = "github:serokell/deploy-rs"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
};
|
||||
|
|
318
home/hypr/hyprland.conf
Normal file
318
home/hypr/hyprland.conf
Normal file
|
@ -0,0 +1,318 @@
|
|||
|
||||
# #######################################################################################
|
||||
# AUTOGENERATED HYPRLAND CONFIG.
|
||||
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hyprland.conf AND EDIT IT,
|
||||
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||
# #######################################################################################
|
||||
|
||||
# This is an example Hyprland config file.
|
||||
# Refer to the wiki for more information.
|
||||
# https://wiki.hyprland.org/Configuring/
|
||||
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
|
||||
# You can split this configuration into multiple files
|
||||
# Create your files separately and then link them to this file like this:
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
source=~/.config/hypr/rose-pine.conf
|
||||
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=,preferred,auto,auto
|
||||
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = kitty
|
||||
$fileManager = pcmanfm
|
||||
$menu = wofi --show drun
|
||||
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
# Or execute your favorite apps at launch like this:
|
||||
|
||||
# exec-once = $terminal
|
||||
# exec-once = nm-applet &
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
env = MOZ_ENABLE_WAYLAND,1
|
||||
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 5
|
||||
|
||||
border_size = 1
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col.active_border = $foam $pine 45deg
|
||||
col.inactive_border = $muted
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = true
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 5
|
||||
rounding_power = 2
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = no,
|
||||
|
||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = easeOutQuint,0.23,1,0.32,1
|
||||
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||
bezier = linear,0,0,1,1
|
||||
bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||
bezier = quick,0.15,0,0.1,1
|
||||
|
||||
# animation = global, 1, 10, default
|
||||
# animation = border, 1, 5.39, easeOutQuint
|
||||
# animation = windows, 1, 4.79, easeOutQuint
|
||||
# animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
# animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
# animation = windowsMove, 1, 4.79, easeOutQuint
|
||||
# animation = fadeIn, 1, 1.73, almostLinear
|
||||
# animation = fadeOut, 1, 1.46, almostLinear
|
||||
# animation = fade, 1, 3.03, quick
|
||||
# animation = layers, 1, 3.81, easeOutQuint
|
||||
# animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
# animation = layersOut, 1, 1.5, linear, fade
|
||||
# animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
# animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
# animation = workspaces, 1, 1.94, almostLinear, fade
|
||||
# animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||
# animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
}
|
||||
|
||||
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||
# "Smart gaps" / "No gaps when only"
|
||||
# uncomment all if you wish to use that.
|
||||
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||
# workspace = f[1], gapsout:0, gapsin:0
|
||||
# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
|
||||
# windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
|
||||
}
|
||||
|
||||
cursor {
|
||||
inactive_timeout = 5
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
clickfinger_behavior = true
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
workspace_swipe = true
|
||||
workspace_swipe_distance = 50
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod, Q, exec, $terminal
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exit,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, R, exec, $menu
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, split-workspace, 1
|
||||
bind = $mainMod, 2, split-workspace, 2
|
||||
bind = $mainMod, 3, split-workspace, 3
|
||||
bind = $mainMod, 4, split-workspace, 4
|
||||
bind = $mainMod, 5, split-workspace, 5
|
||||
bind = $mainMod, 6, split-workspace, 6
|
||||
bind = $mainMod, 7, split-workspace, 7
|
||||
bind = $mainMod, 8, split-workspace, 8
|
||||
bind = $mainMod, 9, split-workspace, 9
|
||||
bind = $mainMod, 0, split-workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, split-movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, split-movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, split-movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, split-movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, split-movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, split-movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, split-movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, split-movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, split-movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, split-movetoworkspace, 10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
bind = $mainMod SHIFT, minus, exec, bash -c "XDG_CURRENT_DESKTOP=sway flameshot gui"
|
||||
bind = $mainMod, n, exec, swaync-client -t
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Example windowrule v1
|
||||
# windowrule = float, ^(kitty)$
|
||||
|
||||
# Example windowrule v2
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrulev2 = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
||||
|
||||
plugin {
|
||||
split-monitor-workspaces {
|
||||
count = 10
|
||||
keep_focused = 0
|
||||
enable_notifications = 1
|
||||
enable_persistent_workspaces = 0
|
||||
}
|
||||
}
|
19
home/hypr/rose-pine.conf
Normal file
19
home/hypr/rose-pine.conf
Normal file
|
@ -0,0 +1,19 @@
|
|||
# name: Rosé Pine
|
||||
# author: jishnurajendran
|
||||
# upstream: https://github.com/jishnurajendran/hyprland-rosepine/blob/main/rose-pine.conf
|
||||
# All natural pine, faux fur and a bit of soho vibes for the classy minimalist
|
||||
$base = 0xff191724
|
||||
$surface = 0xff1f1d2e
|
||||
$overlay = 0xff26233a
|
||||
$muted = 0xff6e6a86
|
||||
$subtle = 0xff908caa
|
||||
$text = 0xffe0def4
|
||||
$love = 0xffeb6f92
|
||||
$gold = 0xfff6c177
|
||||
$rose = 0xffebbcba
|
||||
$pine = 0xff31748f
|
||||
$foam = 0xff9ccfd8
|
||||
$iris = 0xffc4a7e7
|
||||
$highlightLow = 0xff21202e
|
||||
$highlightMed = 0xff403d52
|
||||
$highlightHigh = 0xff524f67
|
|
@ -24,6 +24,11 @@ in
|
|||
config = lib.mkIf cfg.enable {
|
||||
# home.packages = with pkgs; [ flameshot ];
|
||||
|
||||
xdg.configFile."flameshot/flameshot.ini".text = lib.generators.toINI { } cfg.config;
|
||||
# xdg.configFile."flameshot/flameshot.ini".text = lib.generators.toINI { } cfg.config;
|
||||
|
||||
services.flameshot = {
|
||||
enable = true;
|
||||
settings = cfg.config;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -9,10 +9,14 @@ in
|
|||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
snowhawk.sxhkd.enable = true;
|
||||
snowhawk.sxhkd.enable = lib.mkDefault true;
|
||||
|
||||
services.sxhkd.keybindings = {
|
||||
services.sxhkd.keybindings = lib.mkIf config.snowhawk.sxhkd.enable {
|
||||
"XF86TouchpadOn" = "${lib.getExe pkgs.pipewire-controller}";
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland.settings.bind = lib.mkIf config.wayland.windowManager.hyprland.enable [
|
||||
", XF86TouchpadOn, exec, ${lib.getExe pkgs.pipewire-controller}"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ in
|
|||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
name = name;
|
||||
size = 16;
|
||||
size = 24;
|
||||
package =
|
||||
pkgs.runCommand "moveUp" { } ''
|
||||
mkdir -p $out/share/icons
|
||||
|
|
|
@ -9,6 +9,25 @@
|
|||
inputs.nixos-apple-silicon.nixosModules.default
|
||||
inputs.home-manager.nixosModules.default
|
||||
../../modules
|
||||
|
||||
# Default specialisation
|
||||
({ lib, config, ... }: {
|
||||
config = lib.mkIf (config.specialisation != { }) {
|
||||
snowhawk.hyprland.enable = true;
|
||||
};
|
||||
})
|
||||
];
|
||||
|
||||
# boot.binfmt.emulatedSystems = [
|
||||
# "x86_64-linux"
|
||||
# "i686-linux"
|
||||
# ];
|
||||
|
||||
# Install/enable all proprietary firmware
|
||||
# hardware.enableAllFirmware = true;
|
||||
|
||||
environment.sessionVariables.MOZ_GMP_PATH = [
|
||||
"${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm/manifest.json"
|
||||
];
|
||||
|
||||
snowhawk = {
|
||||
|
@ -17,13 +36,27 @@
|
|||
env.enable = true;
|
||||
sops.enable = true;
|
||||
|
||||
audio.enable = false;
|
||||
power-button.enable = false;
|
||||
audio.enable = true;
|
||||
};
|
||||
|
||||
snowhawk.plymouth = {
|
||||
enable = true;
|
||||
theme = "owl";
|
||||
};
|
||||
|
||||
specialisation = {
|
||||
plasma.configuration = {
|
||||
environment.etc."specialisation".text = "plasma";
|
||||
|
||||
services.xserver.enable = true;
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
|
||||
services.hypridle.enable = true;
|
||||
systemd.user.services.hypridle.path = [ pkgs.brightnessctl ];
|
||||
};
|
||||
};
|
||||
|
||||
services.xserver.enable = true;
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
|
||||
documentation = {
|
||||
enable = true;
|
||||
|
@ -37,13 +70,34 @@
|
|||
useGlobalPkgs = true;
|
||||
};
|
||||
|
||||
# programs.steam.enable = true;
|
||||
# hardware.graphics.enable32Bit = lib.mkForce false;
|
||||
|
||||
services.flatpak.enable = true;
|
||||
systemd.services.flatpak-repo = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = [ pkgs.flatpak ];
|
||||
script = ''
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
'';
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
pkgs.rose-pine-gtk-theme
|
||||
pkgs.rose-pine-icon-theme
|
||||
pkgs.adwaita-icon-theme
|
||||
|
||||
neovim
|
||||
bashmount
|
||||
curl
|
||||
git
|
||||
killall
|
||||
|
||||
iwd
|
||||
iwgtk
|
||||
|
||||
gparted
|
||||
exfatprogs
|
||||
|
||||
linux-manual
|
||||
|
||||
|
|
BIN
hosts/llynx/firmware/all_firmware.tar.gz
Executable file
BIN
hosts/llynx/firmware/all_firmware.tar.gz
Executable file
Binary file not shown.
BIN
hosts/llynx/firmware/kernelcache.release.mac14g
Executable file
BIN
hosts/llynx/firmware/kernelcache.release.mac14g
Executable file
Binary file not shown.
|
@ -10,8 +10,27 @@
|
|||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
# FIXME: was previously only "apple_dcp.show_notch=1"
|
||||
# wish I could predict the commit hash
|
||||
boot.kernelParams = lib.mkForce [
|
||||
"earlycon"
|
||||
"console=tty0"
|
||||
"boot.shell_on_fail"
|
||||
"nvme_apple.flush_interval=0"
|
||||
"quiet"
|
||||
"splash"
|
||||
"boot.shell_on_fail"
|
||||
"loglevel=3"
|
||||
"rd.systemd.show_status=false"
|
||||
"rd.udev.log_level=3"
|
||||
"udev.log_priority=3"
|
||||
"apple_dcp.show_notch=1"
|
||||
"root=fstab"
|
||||
"splash"
|
||||
"loglevel=0"
|
||||
];
|
||||
|
||||
hardware.asahi.peripheralFirmwareDirectory = inputs.asahi-firmware; # FIXME: flake input?
|
||||
hardware.asahi.peripheralFirmwareDirectory = ./firmware;
|
||||
hardware.asahi.useExperimentalGPUDriver = true;
|
||||
|
||||
fileSystems."/" = {
|
||||
|
@ -32,7 +51,12 @@
|
|||
}];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.grub = {
|
||||
enable = true;
|
||||
efiSupport = true;
|
||||
device = "nodev";
|
||||
theme = pkgs.rose-pine-grub;
|
||||
};
|
||||
boot.loader.efi.canTouchEfiVariables = false;
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
|
|
|
@ -9,19 +9,36 @@
|
|||
# Desktop
|
||||
firefox.enable = true;
|
||||
kitty.enable = true;
|
||||
theme.enable = true;
|
||||
sops.enable = true;
|
||||
# dunst.enable = true;
|
||||
|
||||
flameshot.enable = true;
|
||||
|
||||
sources.enable = true;
|
||||
projects.enable = true;
|
||||
|
||||
# Term Tools
|
||||
neovim.enable = true;
|
||||
direnv.enable = true;
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland.settings.monitor = [ ",preferred,auto,auto" ];
|
||||
|
||||
snowhawk.ssh = {
|
||||
enable = true;
|
||||
homeNetwork = true;
|
||||
};
|
||||
|
||||
repo-clone.enable = true;
|
||||
repo-clone.repos = {
|
||||
"${config.home.homeDirectory}/Pictures/backgrounds".url = lib.zgitRepo "backgrounds";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
dorion
|
||||
bottom
|
||||
|
||||
ncspot
|
||||
|
||||
vesktop
|
||||
ripgrep
|
||||
|
@ -42,6 +59,29 @@
|
|||
duf
|
||||
pcmanfm
|
||||
jq
|
||||
|
||||
advantagescope
|
||||
wpilib.glass
|
||||
wpilib.shuffleboard
|
||||
wpilib.datalogtool
|
||||
elastic-dashboard
|
||||
pathplanner
|
||||
# inputs.frc-nix.packages."x86_64-linux".pathplanner
|
||||
|
||||
box64
|
||||
openjdk17-bootstrap
|
||||
(vscode-with-extensions.override {
|
||||
vscodeExtensions = with vscode-extensions; [
|
||||
wpilibsuite.vscode-wpilib
|
||||
vscjava.vscode-java-debug
|
||||
vscjava.vscode-java-dependency
|
||||
redhat.java
|
||||
|
||||
vscodevim.vim
|
||||
mvllow.rose-pine
|
||||
eamodio.gitlens
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
programs.nix-index.enable = true;
|
||||
|
|
|
@ -12,11 +12,23 @@
|
|||
# Default specialisation
|
||||
({ lib, config, ... }: {
|
||||
config = lib.mkIf (config.specialisation != { }) {
|
||||
snowhawk.dwm.enable = true;
|
||||
hardware.nvidia.open = lib.mkForce true;
|
||||
|
||||
snowhawk.hyprland = {
|
||||
enable = true;
|
||||
nvidia = true;
|
||||
split-monitor-workspaces = true;
|
||||
};
|
||||
|
||||
home-manager.sharedModules = [{
|
||||
snowhawk.dunst.enable = lib.mkDefault true;
|
||||
snowhawk.dwm.useXFixes = true;
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
monitor = [
|
||||
"DP-1, 1920x1080@144, 1920x0, 1"
|
||||
"HDMI-A-1, 1920x1080@60, 0x0, 1"
|
||||
];
|
||||
};
|
||||
};
|
||||
}];
|
||||
};
|
||||
})
|
||||
|
@ -48,15 +60,34 @@
|
|||
#
|
||||
# home-manager.sharedModules = [{ snowhawk.dunst.enable = lib.mkDefault true; }];
|
||||
# } // nvkConfig;
|
||||
dwl.configuration = {
|
||||
environment.etc."specialisation".text = "dwl";
|
||||
# dwl.configuration = {
|
||||
# environment.etc."specialisation".text = "dwl";
|
||||
#
|
||||
# hardware.nvidia.open = lib.mkForce true;
|
||||
#
|
||||
# snowhawk.dwl.enable = true;
|
||||
#
|
||||
# home-manager.sharedModules = [{ snowhawk.dunst.enable = lib.mkDefault true; }];
|
||||
# };
|
||||
dwm.configuration = {
|
||||
environment.etc."specialisation".text = "dwm";
|
||||
|
||||
hardware.nvidia.open = lib.mkForce true;
|
||||
snowhawk.dwm.enable = true;
|
||||
|
||||
snowhawk.dwl.enable = true;
|
||||
|
||||
home-manager.sharedModules = [{ snowhawk.dunst.enable = lib.mkDefault true; }];
|
||||
home-manager.sharedModules = [{
|
||||
snowhawk.dunst.enable = lib.mkDefault true;
|
||||
snowhawk.dwm.useXFixes = true;
|
||||
}];
|
||||
};
|
||||
# plasma.configuration = {
|
||||
# environment.etc."specialisation".text = "plasma";
|
||||
#
|
||||
# hardware.nvidia.open = lib.mkForce true;
|
||||
#
|
||||
# services.xserver.enable = true;
|
||||
# services.displayManager.sddm.enable = true;
|
||||
# services.desktopManager.plasma6.enable = true;
|
||||
# };
|
||||
# dwlNVK.configuration = {
|
||||
# environment.etc."specialisation".text = "dwlNVK";
|
||||
#
|
||||
|
@ -66,6 +97,8 @@
|
|||
# } // nvkConfig;
|
||||
};
|
||||
|
||||
services.libinput.mouse.middleEmulation = false;
|
||||
|
||||
snowhawk = {
|
||||
filesystem.enable = true;
|
||||
polkit.enable = true;
|
||||
|
@ -80,6 +113,7 @@
|
|||
theme = "owl";
|
||||
};
|
||||
|
||||
programs.gamemode.enable = true;
|
||||
|
||||
# Enable automatic login for the user.
|
||||
services.displayManager.autoLogin = {
|
||||
|
@ -112,11 +146,25 @@
|
|||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
mysql-workbench
|
||||
|
||||
# FIXME: extract to theme module?
|
||||
pkgs.rose-pine-gtk-theme
|
||||
pkgs.rose-pine-icon-theme
|
||||
pkgs.adwaita-icon-theme
|
||||
|
||||
bluetui
|
||||
blueberry
|
||||
|
||||
brightnessctl
|
||||
|
||||
neovim
|
||||
curl
|
||||
git
|
||||
killall
|
||||
|
||||
gamemode
|
||||
|
||||
linux-manual
|
||||
|
||||
inputs.nh.packages.${pkgs.system}.default
|
||||
|
@ -133,6 +181,7 @@
|
|||
|
||||
services.ratbagd.enable = true;
|
||||
|
||||
programs.gamescope.enable = true;
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
|
@ -150,8 +199,16 @@
|
|||
# Also recommended, either as an alternative or in addition
|
||||
zramSwap.enable = true;
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
users.users.ravenshade.extraGroups = [ "docker" "libvirtd" ];
|
||||
|
||||
virtualisation = {
|
||||
libvirtd.enable = true;
|
||||
libvirtd = {
|
||||
enable = true;
|
||||
qemu = {
|
||||
package = pkgs.qemu_kvm;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.virt-manager.enable = true;
|
||||
|
|
|
@ -135,6 +135,7 @@ in
|
|||
efiSupport = true;
|
||||
device = "nodev";
|
||||
theme = pkgs.rose-pine-grub;
|
||||
default = "saved";
|
||||
|
||||
extraEntries = ''
|
||||
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os {
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
snowhawk = {
|
||||
# Desktop
|
||||
firefox.enable = true;
|
||||
dunst.enable = true;
|
||||
theme.enable = true;
|
||||
redshift.enable = true;
|
||||
flameshot.enable = true;
|
||||
|
@ -85,6 +84,10 @@
|
|||
fzf
|
||||
tree
|
||||
|
||||
ncspot
|
||||
|
||||
pathplanner
|
||||
|
||||
gparted
|
||||
arandr
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ in
|
|||
environment.variables = {
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
MOZ_ENABLE_WAYLAND = 1;
|
||||
SDL_VIDEODRIVEWR = "walyand,x11";
|
||||
SDL_VIDEODRIVER = "wayland,x11"; # TODO: Test me
|
||||
_JAVA_AWT_WM_NONREPARENTING = 1;
|
||||
XDG_CURRENT_DESKTOP = "dwl";
|
||||
XDG_SESSION_DESKTOP = "dwl";
|
||||
|
|
446
modules/hyprland.nix
Normal file
446
modules/hyprland.nix
Normal file
|
@ -0,0 +1,446 @@
|
|||
{ lib, config, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.snowhawk.hyprland;
|
||||
in
|
||||
{
|
||||
options.snowhawk.hyprland = {
|
||||
enable = lib.mkEnableOption "hyprland";
|
||||
|
||||
split-monitor-workspaces = lib.mkEnableOption "split-monitor-workspaces";
|
||||
|
||||
nvidia = lib.mkEnableOption "hyprland nvidia tweaks";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||
# Core Module
|
||||
{
|
||||
services.graphical-desktop.enable = lib.mkDefault true;
|
||||
|
||||
services.displayManager = {
|
||||
enable = true;
|
||||
sddm = {
|
||||
enable = lib.mkDefault true;
|
||||
wayland.enable = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
|
||||
security = {
|
||||
polkit.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
dconf.enable = lib.mkDefault true;
|
||||
xwayland.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
# xdg.portal = {
|
||||
# enable = true;
|
||||
# extraPortals = [
|
||||
# pkgs.xdg-desktop-portal
|
||||
# pkgs.xdg-desktop-portal-gtk
|
||||
# ];
|
||||
# };
|
||||
|
||||
programs.waybar.enable = true;
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
withUWSM = true;
|
||||
xwayland.enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
|
||||
};
|
||||
|
||||
services.hypridle.enable = true;
|
||||
systemd.user.services.hypridle.path = [ pkgs.brightnessctl ];
|
||||
|
||||
# programs.hyprlock.enable = true;
|
||||
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
|
||||
# xdg.portal.config.hyprland.default = lib.mkDefault [ "wlr" "gtk" ];
|
||||
|
||||
services.xserver.desktopManager.runXdgAutostartIfNone = lib.mkDefault true;
|
||||
|
||||
environment.variables = {
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
MOZ_ENABLE_WAYLAND = 1;
|
||||
SDL_VIDEODRIVEWR = "wayland,x11";
|
||||
_JAVA_AWT_WM_NONREPARENTING = 1;
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
inputs.rose-pine-hyprcursor.packages.${pkgs.system}.default
|
||||
];
|
||||
}
|
||||
|
||||
# hyprland configuration
|
||||
{
|
||||
home-manager.sharedModules = [{
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
# extraConfig = builtins.readFile ../home/hypr/hyprland.conf;
|
||||
settings = {
|
||||
source = [ "${../home/hypr/rose-pine.conf}" ];
|
||||
|
||||
env = [
|
||||
"XCURSOR_SIZE,24"
|
||||
"HYPRCURSOR_SIZE,24"
|
||||
"HYPRCURSOR_THEME,rose-pine-hyprcursor"
|
||||
"MOZ_ENABLE_WAYLAND,1"
|
||||
];
|
||||
|
||||
# TODO: Direct links
|
||||
"$terminal" = "kitty";
|
||||
"$fileManager" = "pcmanfm";
|
||||
"$menu" = "wofi --show drun";
|
||||
|
||||
"$mainMod" = "SUPER";
|
||||
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 5;
|
||||
border_size = 1;
|
||||
|
||||
"col.active_border" = "$foam $pine 45deg";
|
||||
"col.inactive_border" = "$muted";
|
||||
|
||||
resize_on_border = true;
|
||||
|
||||
allow_tearing = false;
|
||||
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration = {
|
||||
rounding = 5;
|
||||
rounding_power = 2;
|
||||
|
||||
active_opacity = 1.0;
|
||||
inactive_opacity = 1.0;
|
||||
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
};
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 1;
|
||||
|
||||
vibrancy = 0.1696;
|
||||
};
|
||||
};
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations = {
|
||||
enabled = "no,";
|
||||
|
||||
bezier = [ "easeOutQuint,0.23,1,0.32,1" "easeInOutCubic,0.65,0.05,0.36,1" "linear,0,0,1,1" "almostLinear,0.5,0.5,0.75,1.0" "quick,0.15,0,0.1,1" ];
|
||||
|
||||
# I need to tinker with these some more for llynx
|
||||
# animation = global, 1, 10, default
|
||||
# animation = border, 1, 5.39, easeOutQuint
|
||||
# animation = windows, 1, 4.79, easeOutQuint
|
||||
# animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
# animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
# animation = windowsMove, 1, 4.79, easeOutQuint
|
||||
# animation = fadeIn, 1, 1.73, almostLinear
|
||||
# animation = fadeOut, 1, 1.46, almostLinear
|
||||
# animation = fade, 1, 3.03, quick
|
||||
# animation = layers, 1, 3.81, easeOutQuint
|
||||
# animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
# animation = layersOut, 1, 1.5, linear, fade
|
||||
# animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
# animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
# animation = workspaces, 1, 1.94, almostLinear, fade
|
||||
# animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||
# animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
};
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master = {
|
||||
new_status = "master";
|
||||
};
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc = {
|
||||
force_default_wallpaper = -1;
|
||||
disable_hyprland_logo = false;
|
||||
};
|
||||
|
||||
cursor = {
|
||||
inactive_timeout = 5;
|
||||
};
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
kb_variant = "";
|
||||
kb_model = "";
|
||||
kb_options = "";
|
||||
kb_rules = "";
|
||||
|
||||
follow_mouse = 1;
|
||||
sensitivity = 0;
|
||||
|
||||
numlock_by_default = true;
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
clickfinger_behavior = true;
|
||||
};
|
||||
};
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures = {
|
||||
workspace_swipe = true;
|
||||
workspace_swipe_distance = 50;
|
||||
};
|
||||
|
||||
plugin = {
|
||||
split-monitor-workspaces = lib.mkIf cfg.split-monitor-workspaces {
|
||||
count = 10;
|
||||
keep_focused = 10;
|
||||
enable_notifications = 0;
|
||||
enable_persistent_workspaces = 0;
|
||||
};
|
||||
};
|
||||
|
||||
windowrulev2 = [
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
"suppressevent maximize, class:.*"
|
||||
# Fix some dragging issues with XWayland
|
||||
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
bindel = [
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||
",XF86MonBrightnessUp, exec, brightnessctl s 10%+"
|
||||
",XF86MonBrightnessDown, exec, brightnessctl s 10%-"
|
||||
];
|
||||
|
||||
bindl = [
|
||||
# Requires playerctl
|
||||
", XF86AudioNext, exec, playerctl next"
|
||||
", XF86AudioPause, exec, playerctl play-pause"
|
||||
", XF86AudioPlay, exec, playerctl play-pause"
|
||||
", XF86AudioPrev, exec, playerctl previous"
|
||||
];
|
||||
|
||||
bind = [
|
||||
"$mainMod, Q, exec, $terminal"
|
||||
"$mainMod, C, killactive,"
|
||||
"$mainMod CTRL SHIFT, M, exit,"
|
||||
"$mainMod, E, exec, $fileManager"
|
||||
"$mainMod, V, togglefloating,"
|
||||
"$mainMod, R, exec, $menu"
|
||||
"$mainMod, P, pseudo, # dwindle"
|
||||
"$mainMod, J, togglesplit, # dwindle"
|
||||
|
||||
"$mainMod SHIFT, minus, exec, bash -c \"XDG_CURRENT_DESKTOP=sway flameshot gui\""
|
||||
"$mainMod, n, exec, swaync-client -t"
|
||||
|
||||
# moving focus
|
||||
"$mainMod, left, movefocus, l"
|
||||
"$mainMod, right, movefocus, r"
|
||||
"$mainMod, up, movefocus, u"
|
||||
"$mainMod, down, movefocus, d"
|
||||
|
||||
# scratchpad
|
||||
"$mainMod, S, togglespecialworkspace, magic"
|
||||
"$mainMod SHIFT, S, movetoworkspace, special:magic"
|
||||
] ++ (
|
||||
# workspaces
|
||||
# binds $mod + [shift +] {1..9} to [move to] workspace {1..9}
|
||||
builtins.concatLists (builtins.genList
|
||||
(i:
|
||||
let ws = i + 1;
|
||||
in [
|
||||
"$mainMod, code:1${toString i}, ${lib.optionalString cfg.split-monitor-workspaces "split-"}workspace, ${toString ws}"
|
||||
"$mainMod SHIFT, code:1${toString i}, ${lib.optionalString cfg.split-monitor-workspaces "split-"}movetoworkspace, ${toString ws}"
|
||||
]
|
||||
)
|
||||
9)
|
||||
);
|
||||
};
|
||||
|
||||
package = null;
|
||||
portalPackage = null;
|
||||
};
|
||||
}];
|
||||
}
|
||||
|
||||
# split-monitor-workspaces
|
||||
(lib.mkIf cfg.split-monitor-workspaces {
|
||||
home-manager.sharedModules = [{
|
||||
wayland.windowManager.hyprland = {
|
||||
settings.bind = [
|
||||
"$mainMod SHIFT, comma, split-changemonitor, -1"
|
||||
"$mainMod SHIFT, period, split-changemonitor, +1"
|
||||
];
|
||||
plugins = [
|
||||
inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces
|
||||
];
|
||||
};
|
||||
}];
|
||||
})
|
||||
|
||||
# useful desktop stuff
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Screenshotting
|
||||
grim
|
||||
slurp
|
||||
satty
|
||||
|
||||
# Hardware Control
|
||||
brightnessctl
|
||||
|
||||
# Desktop
|
||||
wofi
|
||||
kitty
|
||||
pipewire-controller
|
||||
|
||||
# Wayland Utilities
|
||||
wdisplays
|
||||
xorg.xlsclients
|
||||
wl-clipboard
|
||||
];
|
||||
}
|
||||
|
||||
# SDDM Theme
|
||||
(
|
||||
let sddmPkg = (pkgs.sddm-astronaut.override { embeddedTheme = "purple_leaves"; });
|
||||
in {
|
||||
services.displayManager = {
|
||||
enable = lib.mkDefault true;
|
||||
sddm = {
|
||||
enable = lib.mkDefault true;
|
||||
wayland.enable = lib.mkDefault true;
|
||||
theme = "sddm-astronaut-theme";
|
||||
package = pkgs.kdePackages.sddm;
|
||||
extraPackages = with pkgs; [
|
||||
sddmPkg
|
||||
kdePackages.qtsvg
|
||||
kdePackages.qtvirtualkeyboard
|
||||
kdePackages.qtmultimedia
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [ sddmPkg ];
|
||||
}
|
||||
)
|
||||
|
||||
# Anyrun
|
||||
(lib.mkIf false {
|
||||
home-manager.sharedModules = [{
|
||||
imports = [
|
||||
inputs.anyrun.homeManagerModules.default
|
||||
];
|
||||
|
||||
programs.anyrun = {
|
||||
enable = true;
|
||||
config = {
|
||||
x = { fraction = 0.5; };
|
||||
y = { fraction = 0.3; };
|
||||
width = { fraction = 0.3; };
|
||||
layer = "overlay";
|
||||
showResultsImmediately = true;
|
||||
hidePluginInfo = true;
|
||||
plugins = [
|
||||
inputs.anyrun.packages.${pkgs.system}.applications
|
||||
];
|
||||
};
|
||||
|
||||
extraCss = /* css */ ''
|
||||
window {
|
||||
background: transparent;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}];
|
||||
})
|
||||
|
||||
({
|
||||
home-manager.sharedModules = [{
|
||||
services.swaync = {
|
||||
enable = true;
|
||||
style = builtins.readFile "${inputs.rose-pine-swaync}/theme/rose-pine.css";
|
||||
settings = {
|
||||
positionX = "right";
|
||||
positionY = "tops";
|
||||
layer = "overlay";
|
||||
control-center-layer = "tops";
|
||||
cssPriority = "application";
|
||||
control-center-margin-top = 0;
|
||||
control-center-margin-bottom = 0;
|
||||
control-center-margin-right = 0;
|
||||
control-center-margin-left = 0;
|
||||
notification-2fa-action = true;
|
||||
notification-inline-replies = false;
|
||||
notification-icon-size = 64;
|
||||
notification-body-image-height = 100;
|
||||
notification-body-image-width = 200;
|
||||
timeout = 10;
|
||||
timeout-low = 5;
|
||||
timeout-critical = 0;
|
||||
fit-to-screen = true;
|
||||
control-center-width = 500;
|
||||
control-center-height = 600;
|
||||
notification-window-width = 500;
|
||||
keyboard-shortcuts = true;
|
||||
image-visibility = "when-available";
|
||||
transition-time = 200;
|
||||
hide-on-clear = false;
|
||||
hide-on-action = true;
|
||||
script-fail-notify = false;
|
||||
};
|
||||
};
|
||||
}];
|
||||
})
|
||||
|
||||
{
|
||||
home-manager.sharedModules = [{
|
||||
services.playerctld.enable = true;
|
||||
systemd.user.services.playerctld = {
|
||||
Unit.PartOf = lib.mkForce [ "graphical-session.target" ];
|
||||
Install.WantedBy = lib.mkForce [ "graphical-session.target" ];
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
playerctl
|
||||
];
|
||||
}];
|
||||
}
|
||||
|
||||
(lib.mkIf cfg.nvidia {
|
||||
environment.variables = {
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
};
|
||||
})
|
||||
]);
|
||||
}
|
|
@ -5,7 +5,7 @@ private_keys:
|
|||
caveserver: ENC[AES256_GCM,data:bf3+bhbbX08NPk31Wy26ZsYzUIg2fv7SjWZ73CEOPTQZf8yLy32A63oJX71qtPIj6PcpbsHfrYGMKYHuMUYr5N9fYDhiXEbesAt1nX9HOsq0UwYSl7HWucRHkorkIq09r5oVB4CWoYEj6/2HmZhbYJgEZdMptActi3+eRobgjTdqtq4Q8K0tp9X3VeE2Ca/M17DEz9y93aMKunXbD38jS+zZs0SI1OtyC0V9MenAtiiadBznexq6IVwsp/4mcAiv0udFn7lwCYpPPsSKoCjFYfNIPu/0rCIEag3/bdJHPJA0fng37E4ZGA3ZCwy4PhaJ88kJBAqLJ8u1mQ+UGNFtZBaqww+RIAStkq958tYoyZaI4C+E+XpGRs6FsthN9lsJZ1skiT41vxsfb9+M2sELv+Jm9xDkHJr7+pjtGkN2xEvWS/DrzsKxl4qCw+ZkyE5VNS7vW+gfM+7XieooxXJlQEihlYWflRd1aikYfEizXXWaM6XlLsHtFYEmtQMvesB8XCeoCVT47XgGNqmaNFEEo6Pdl5ke6WO4Gi5K,iv:FZWDaT+ernolWiLZbE67g9JWNCgCwdUyglv8cwAeFO0=,tag:emCa72E1HIjU6+PAJvICcQ==,type:str]
|
||||
snowhawk: ENC[AES256_GCM,data:I06s6rV8wURi5db2S+/QEHK2QtAn45PhP7vAvtTOwQUhECA/WD2Q6zPsn6nKxIt5Y7mlrSlN9+/cQ+zkEOqMvfkQIeGGoK5I/zi/196lLqTen6aDF7M0ZQVUJUIlXP3K4aO9b6ZI4BQSOTWAPq5CfMkCyT6BErhG4JnEl5Dxvdic94mrImmzGHJWdA2p9lfc/a+rPBwSqMTS7VAtez/aU/DyzexFYos0k2i2CMnMdLj+5FxAxSarlG6/PilumGj+xVN6msgGv6tN0kpb7RWbiv/ZwQNG+jkKukIduG+PAvhq5+X+ib2y+/JHhTTYZ5sAJrmdHJ0YGQqciu3VS9uLOn/NUksO2zLdvRZf1A0Y5MbE9nHrX2tpv77ivu5Hii7x9kBQXk/0PqvzYpV1thvEyxte18pN68NWm2BdSSU1KHiY6SlmrpqfmIZJqdW4yHn1otJRsDMfOLLSm2Eekjhs7qCrZVGj5bwk4TZALD00UeQsexLpNX+Gi8Njy2HJYtHtVPsMkq8oQ4RnQ/2cv7Pu82AZ98wdRPwFA05M,iv:bZ4fkol7BBjROx9J6cVYG1MQdfTbtgRR8/GiNjVWTcA=,tag:6r5+LCE5UcRjXIe1b0kYrw==,type:str]
|
||||
ssh_hosts:
|
||||
caveserver: ENC[AES256_GCM,data:l7P6cqTBaJfjfPO5N8I421KAlJndtcPBIIWgho+NA3ymY23b+pMjIygkViA+L7pFYNZ8Fg==,iv:06skSjRR05Y+nv1TTUzAlSid8vlQtYlgCK/Yr3k8gqA=,tag:mdhPhxut4pK+tpPVN9wxog==,type:str]
|
||||
caveserver: ENC[AES256_GCM,data:gbP+iNnBUOmQTxUuegIv5sgqGuBhAlg9p0dZUC1nlX/DzZW3DOjF7YBdmSx/TYJ7HHAp8DLZ,iv:LIXC3jTQLFK6HDDZm4dbzx+inJMcsTGkyEY3ytaMwfs=,tag:OOP1zQidcic3lgmWqVlOJw==,type:str]
|
||||
locations:
|
||||
snowhawk:
|
||||
lat: ENC[AES256_GCM,data:N7CsvQ==,iv:BfSp2jXBZDEEyNHhpo3SAwEVIWI0timAT2S1l76ODn0=,tag:Mf99+rM/m3Wh8BmmITKjpg==,type:str]
|
||||
|
@ -47,8 +47,8 @@ sops:
|
|||
SzBGRHZHNm5SeGhnZHBlNW9JMnFBWkEK5lRKdGVp9rCL2e7dRXedxNFCvlj6NFfF
|
||||
jy0vb0T8arxL4UlqYKRFgxhm+UriLaiYqNz1eXzIHe5KKyapurFf7w==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-01-22T06:46:39Z"
|
||||
mac: ENC[AES256_GCM,data:lsf52iWYfXM3Fa3GiO5nlFffMJGOiURGGvyGHey0ajNUzcEOv5VHfgsUWRuAdehht6HlMCUt6MRKODXL5Mo5d1kPfEbfAFX0AgNwxKXLSrDXu6arXCGkbIC8PXFfpcSJ9FRKkk7GjZi6GvCtHMYwQcIjgIQjWnFhIRnKiXMR3bA=,iv:UboPKL3RgZ1zqGcCS2gBSuWzkvc5hIpYX/UIUEgYxLU=,tag:N5EjWnp47pptZ9/ealmXAw==,type:str]
|
||||
lastmodified: "2025-03-14T09:38:21Z"
|
||||
mac: ENC[AES256_GCM,data:znO3sIZuXg/wIZ7Uxf2q+D/3eguMsiQ3+EZjDWQI9j2fE6q0tRzvcpFr/aarVhdIIs8MF7oG3Ka7ZO2s7F+hBsU9Ryu+w1Iyp/kFsf0tfFZAoTv0RdhmZJKe1GK8PH+Tmj0IzlPjCl/9tuWfWHwLe6+IVakP7oi5W00yRgwc71M=,iv:c9JibJ1iDGEYU96v0K0KfWE71lP+p4yBiTUGdxsWp64=,tag:1j7nTWgUe2H9Ny7qZ1aDDw==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.9.2
|
||||
version: 3.9.4
|
||||
|
|
Loading…
Reference in a new issue