Refactors, konawall-py for darwin, sumireko update to Sonoma

This commit is contained in:
Kat Inskip 2023-11-15 11:10:44 -08:00
parent 091ddb5b91
commit bc61d82487
Signed by: kat
GPG key ID: 465E64DECEA8CF0F
151 changed files with 691 additions and 792 deletions

View file

@ -0,0 +1,8 @@
_: {
services.barrier.client = {
enable = true;
enableCrypto = true;
enableDragDrop = true;
server = "10.1.1.153";
};
}

View file

@ -0,0 +1,21 @@
{pkgs, ...}: {
home.packages = with pkgs; [
gnome.adwaita-icon-theme
];
gtk = {
enable = true;
font = {
name = "Iosevka";
size = 9;
};
iconTheme = {
name = "Maia";
package = pkgs.maia-icon-theme;
};
theme = {
name = "Adapta";
package = pkgs.adapta-gtk-theme;
};
};
}

View file

@ -0,0 +1,7 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
include "us(altgr-intl)"
name[Group1] = "English (US, international with pound sign)";
key <AD03> { [ e, E, EuroSign, cent ] };
key <AE03> { [ 3, numbersign, sterling] };
};

View file

@ -0,0 +1,30 @@
{
config,
pkgs,
...
}: let
inherit (config.base16) palette;
in {
systemd.user.services = {
mako = {
Unit = {
Description = "mako";
X-Restart-Triggers = [(toString config.xdg.configFile."mako/config".source)];
};
Service = {
ExecStart = "${pkgs.mako}/bin/mako";
Restart = "always";
};
Install = {WantedBy = ["graphical-session.target"];};
};
};
services.mako = {
enable = true;
font = "Iosevka 10";
defaultTimeout = 3000;
borderColor = palette.base08;
backgroundColor = "${palette.base00}BF";
textColor = palette.base05;
};
}

View file

@ -0,0 +1,337 @@
{
config,
pkgs,
lib,
std,
...
}: let
inherit (std) list;
inherit (lib.modules) mkMerge;
in {
programs.zsh.profileExtra = ''
# If running from tty1 start sway
if [ "$(tty)" = "/dev/tty1" ]; then
systemctl --user unset-environment \
SWAYSOCK \
I3SOCK \
WAYLAND_DISPLAY \
DISPLAY \
IN_NIX_SHELL \
__HM_SESS_VARS_SOURCED \
GPG_TTY \
NIX_PATH \
SHLVL
exec env --unset=SHLVL systemd-cat -t sway -- sway
fi
'';
home = {
sessionVariables = {
XDG_CURRENT_DESKTOP = "Unity";
XDG_SESSION_TYPE = "wayland";
WLR_DRM_DEVICES = "/dev/dri/card0";
};
packages = with pkgs; [
grim
slurp
swaylock-fancy
wl-clipboard
jq
quintom-cursor-theme
gsettings-desktop-schemas
glib
wofi
wmctrl
];
};
services = {
i3gopher.enable = true;
};
wayland.windowManager.sway = let
cfg = config.wayland.windowManager.sway.config;
in {
enable = true;
config = let
super = "Mod4";
alt = "Mod1";
actionMode = "(l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown";
gapsMode = "Gaps: (o) outer, (i) inner";
gapsOuterMode = "Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)";
gapsInnerMode = "Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)";
lockCommand = "${pkgs.swaylock}/bin/swaylock";
in {
bars = [];
modes = let
defaultPath = {
"Return" = "mode default";
"Escape" = "mode default";
"${cfg.modifier}+z" = "mode default";
};
in {
${gapsOuterMode} =
defaultPath
// {
"equal" = "gaps outer current plus 5";
"minus" = "gaps outer current minus 5";
"0" = "gaps outer current set 0";
"plus" = "gaps outer all plus 5";
"Shift+minus" = "gaps outer all minus 5";
"Shift+0" = "gaps outer all set 0";
};
${gapsInnerMode} =
defaultPath
// {
"equal" = "gaps inner current plus 5";
"minus" = "gaps inner current minus 5";
"0" = "gaps inner current set 0";
"plus" = "gaps inner all plus 5";
"Shift+minus" = "gaps inner all minus 5";
"Shift+0" = "gaps inner all set 0";
};
${gapsMode} =
defaultPath
// {
"o" = "mode ${gapsOuterMode}";
"i" = "mode ${gapsInnerMode}";
};
${actionMode} =
defaultPath
// {
"l" = "exec ${lockCommand}, mode default";
"e" = "exec swaymsg exit, mode default";
"s" = "exec systemctl suspend, mode default";
"h" = "exec systemctl hibernate, mode default";
"r" = "exec systemctl reboot, mode default";
"Shift+s" = "exec systemctl shutdown, mode default";
};
resize =
defaultPath
// {
"a" = "resize shrink width 4 px or 4 ppt";
"s" = "resize shrink height 4 px or 4 ppt";
"w" = "resize grow height 4 px or 4 ppt";
"d" = "resize grow width 4 px or 4 ppt";
"Left" = "resize shrink width 4 px or 4 ppt";
"Down" = "resize shrink height 4 px or 4 ppt";
"Up" = "resize grow height 4 px or 4 ppt";
"Right" = "resize grow width 4 px or 4 ppt";
};
};
input = {
"*" = {
xkb_layout = "us_gbp_map";
xkb_options = "compose:rctrl,ctrl:nocaps";
};
};
gaps = {
smartBorders = "no_gaps";
};
fonts = {
names = ["Iosevka"];
style = "Regular";
size = 10.0;
};
terminal = "${pkgs.wezterm}/bin/wezterm";
modifier = super;
startup = [
];
window = {
border = 1;
titlebar = false;
hideEdgeBorders = "smart";
};
workspaceAutoBackAndForth = true;
floating = {
border = 1;
titlebar = false;
};
keybindings = let
pactl = "${config.home.nixosConfig.hardware.pulseaudio.package or pkgs.pulseaudio}/bin/pactl";
bindWorkspace = key: workspace: {
"${cfg.modifier}+${key}" = "workspace number ${workspace}";
"${cfg.modifier}+shift+${key}" = "move container to workspace number ${workspace}";
};
workspaceBindings =
list.map (v: bindWorkspace v "${v}") (list.map builtins.toString (list.range 1 9))
++ [
(
bindWorkspace "0" "10"
)
]
++ list.imap (i: v: bindWorkspace v "${toString (11 + i)}") (list.map (n: "F${builtins.toString n}") (std.list.range 1 12));
in
mkMerge ([
{
# modes
"${cfg.modifier}+Shift+g" = ''mode "${gapsMode}"'';
"${cfg.modifier}+Delete" = ''mode "${actionMode}"'';
# focus windows - ESDF
"${cfg.modifier}+s" = "focus left";
"${cfg.modifier}+d" = "focus down";
"${cfg.modifier}+e" = "focus up";
"${cfg.modifier}+f" = "focus right";
# focus windows - arrows
"${cfg.modifier}+Left" = "focus left";
"${cfg.modifier}+Down" = "focus down";
"${cfg.modifier}+Up" = "focus up";
"${cfg.modifier}+Right" = "focus right";
# move window / container - ESDF
"${cfg.modifier}+Shift+s" = "move left";
"${cfg.modifier}+Shift+d" = "move down";
"${cfg.modifier}+Shift+e" = "move up";
"${cfg.modifier}+Shift+f" = "move right";
# move window / container - arrows
"${cfg.modifier}+Shift+Left" = "move left";
"${cfg.modifier}+Shift+Down" = "move down";
"${cfg.modifier}+Shift+Up" = "move up";
"${cfg.modifier}+Shift+Right" = "move right";
# focus output - ESDF
"${cfg.modifier}+control+s" = "focus output left";
"${cfg.modifier}+control+d" = "focus output down";
"${cfg.modifier}+control+e" = "focus output up";
"${cfg.modifier}+control+f" = "focus output right";
# focus output - arrows
"${cfg.modifier}+control+Left" = "focus output left";
"${cfg.modifier}+control+Down" = "focus output down";
"${cfg.modifier}+control+Up" = "focus output up";
"${cfg.modifier}+control+Right" = "focus output right";
# move container to output - ESDF
"${cfg.modifier}+control+Shift+s" = "move container to output left";
"${cfg.modifier}+control+Shift+d" = "move container to output down";
"${cfg.modifier}+control+Shift+e" = "move container to output up";
"${cfg.modifier}+control+Shift+f" = "move container to output right";
# move container to output - arrows
"${cfg.modifier}+control+Shift+Left" = "move container to output left";
"${cfg.modifier}+control+Shift+Down" = "move container to output down";
"${cfg.modifier}+control+Shift+Up" = "move container to output up";
"${cfg.modifier}+control+Shift+Right" = "move container to output right";
# move workspace to output - ESDF
"${cfg.modifier}+control+Shift+Mod1+s" = "move workspace to output left";
"${cfg.modifier}+control+Shift+Mod1+d" = "move workspace to output down";
"${cfg.modifier}+control+Shift+Mod1+e" = "move workspace to output up";
"${cfg.modifier}+control+Shift+Mod1+f" = "move workspace to output right";
# move workspace to output - arrows
"${cfg.modifier}+control+Shift+Mod1+Left" = "move workspace to output left";
"${cfg.modifier}+control+Shift+Mod1+Down" = "move workspace to output down";
"${cfg.modifier}+control+Shift+Mod1+Up" = "move workspace to output up";
"${cfg.modifier}+control+Shift+Mod1+Right" = "move workspace to output right";
# process management - q
"${cfg.modifier}+q" = "exec ${cfg.menu}";
"${cfg.modifier}+Shift+q" = "kill";
"${cfg.modifier}+control+q" = "exec ${cfg.terminal}";
# focus parent/child - w
"${cfg.modifier}+w" = "focus parent";
"${cfg.modifier}+Shift+w" = "focus child";
# unused control
# split management - a
"${cfg.modifier}+a" = "splith";
"${cfg.modifier}+Shift+a" = "splitv";
"${cfg.modifier}+control+A" = "layout toggle split";
# resizing, reloading - r
# unused base
"${cfg.modifier}+Shift+r" = "mode resize";
"${cfg.modifier}+control+r" = "reload";
# layout handling - t
"${cfg.modifier}+t" = "layout tabbed";
"${cfg.modifier}+Shift+t" = "layout stacking";
"${cfg.modifier}+control+t" = "fullscreen toggle";
# locking - l
"${cfg.modifier}+l" = "exec ${lockCommand}";
# unused shift
# unused control
"control+${alt}+Delete" = "exec ${lockCommand}";
# floating - p
"${cfg.modifier}+p" = "focus mode_toggle";
"${cfg.modifier}+Shift+p" = "floating toggle";
# unused control
# workspace history switching - tab
"${cfg.modifier}+Tab" = "workspace back_and_forth";
"${cfg.modifier}+Shift+Tab" = "exec ${config.services.i3gopher.focus-last}";
# unused control
# multimedia / laptop
"XF86AudioPlay" = "exec --no-startup-id ${pkgs.playerctl}/bin/playerctl play-pause";
"XF86AudioLowerVolume" = "exec --no-startup-id ${pactl} set-sink-volume @DEFAULT_SINK@ -5%";
"XF86AudioRaiseVolume" = "exec --no-startup-id ${pactl} set-sink-volume @DEFAULT_SINK@ +5%";
"XF86AudioMute" = "exec --no-startup-id ${pactl} set-sink-mute @DEFAULT_SINK@ toggle";
"XF86AudioMute+Shift" = "exec --no-startup-id ${pactl} set-source-mute @DEFAULT_SOURCE@ toggle";
"XF86AudioMicMute" = "exec --no-startup-id ${pactl} set-source-mute @DEFAULT_SOURCE@ toggle";
"XF86MonBrightnessDown" = "exec ${pkgs.light}/bin/light -U 5";
"XF86MonBrightnessUp" = "exec ${pkgs.light}/bin/light -A 5";
}
]
++ workspaceBindings);
colors = let
inherit (config.base16) palette;
in {
focused = {
border = palette.base01;
background = palette.base0D;
text = palette.base07;
indicator = palette.base0D;
childBorder = palette.base0D;
};
focusedInactive = {
border = palette.base02;
background = palette.base04;
text = palette.base00;
indicator = palette.base04;
childBorder = palette.base04;
};
unfocused = {
border = palette.base01;
background = palette.base02;
text = palette.base06;
indicator = palette.base02;
childBorder = palette.base02;
};
urgent = {
border = palette.base03;
background = palette.base08;
text = palette.base00;
indicator = palette.base08;
childBorder = palette.base08;
};
};
seat.seat0.xcursor_theme = ''"Quintom Snow" 20'';
};
wrapperFeatures.gtk = true;
extraConfig = ''
title_align center
'';
};
}

View file

@ -0,0 +1,95 @@
{
kittywitch,
pkgs,
...
}: {
programs.waybar = {
enable = true;
style = let
template = kittywitch.sassTemplate {
name = "waybar-style";
src = ./waybar.sass;
};
in
template.source;
systemd.enable = true;
settings.main = {
layer = "top";
position = "top";
height = 18;
# Modules Placement
modules-left = [
"sway/workspaces"
"sway/mode"
"sway/window"
];
modules-center = [
"custom/clock"
"mpris"
];
modules-right = [
"network"
"temperature"
"idle_inhibitor"
"tray"
];
# Modules Definition
"sway/workspaces" = {
format = "{icon}";
format-icons = {
# https://fontawesome.com/v5/cheatsheet
"1" = ""; # chats
"2" = ""; # cloud (browser)
"3" = ""; # music
"4" = ""; # brain
"5" = ""; # terminal >_
};
};
"sway/window" = {
format = "{}";
};
tray = {
show-passive-items = true;
icon-size = 12;
spacing = 2;
};
mpris = {
format = "{player_icon} {dynamic}";
format-paused = "{status_icon} {dynamic}";
player-icons = {
default = "";
brave = "";
mpv = "";
spotify = "";
};
status-icons = {
paused = "";
};
};
temperature = {
format = " {temperatureC}°C";
critical-threshold = 80;
};
idle_inhibitor = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
};
network = {
format-wifi = " {essid} ({signalStrength}%)";
format-ethernet = " {ipaddr}/{cidr}";
format-linked = " No IP";
format-disconnected = " Disconnected";
format-alt = "{ifname}: {ipaddr}/{cidr}";
};
"custom/clock" = {
exec = ''${pkgs.coreutils}/bin/date +"%a, %F %T %Z"'';
interval = 1;
};
};
};
}

View file

@ -0,0 +1,84 @@
*
padding: 0
margin: 0
border: none
border-radius: 0
background: none
font-family: "Iosevka", "Font Awesome 6 Free", "Font Awesome 6 Brands"
font-size: $font_size
text-shadow: none
box-shadow: none
%widget_unpadded
transition: none
background: $base01
color: $base07
margin: 0 4px
%widget
@extend %widget_unpadded
padding: 0 4px
window#waybar
background: rgba($base00, 0.9)
border-bottom: 2px solid transparent
// sway/workspaces
#workspaces
@extend %widget_unpadded
button
color: $base06
&.focused
color: $base07
background: $base0D
&:hover
transition: none
box-shadow: inherit
text-shadow: inherit
background: $base06
color: $base0C
// widgets
#mode, window#waybar #window,
#custom-clock, #mpris,
#pulseaudio, #backlight, #network, #temperature, #battery, #idle_inhibitor, #tray, #tray menu
@extend %widget
// hide when empty
window#waybar.empty #window
opacity: 0
// tooltips
tooltip
background: rgba($base00, 0.9)
label
color: $base07
// mpris player and state
#mpris
&.spotify
background: #191414
color: #1DB954
&.paused
background: $base01
color: $base03
/*.modules-left
#window
widget
label
margin: 0
&:first-child
margin-left: 0
&:last-child
margin-right: 0*/
.modules-center
.modules-right

View file

@ -0,0 +1,20 @@
{kittywitch, ...}: {
programs.wofi = {
enable = true;
settings = {
style = let
template = kittywitch.sassTemplate {
name = "wofi-style";
src = ./wofi.sass;
};
in
template.source;
insensitive = true;
allow_images = true;
hide_scroll = true;
width = "25%";
mode = "dmenu";
prompt = "";
};
};
}

View file

@ -0,0 +1,26 @@
#scroll
background: $base01
border: 1px solid $base03
#input
background: $base01
border: 1px solid $base0C
margin: 1em
background: $base02
color: $base04
window
font-family: $font
background: rgba($base00, .9)
border-radius: 1em
font-size: $font_size
color: $base07
#outer-box
margin: 1em
#entry
border-bottom: 1px dashed $base04
padding: .75em
&:selected
background-color: $base0D

View file

@ -0,0 +1,16 @@
_: {
xdg = {
enable = true;
userDirs = {
enable = true;
pictures = "$HOME/pictures";
videos = "$HOME/videos";
documents = "$HOME/docs";
download = "$HOME/downloads";
desktop = "$HOME/desktop";
templates = "$HOME/templates";
publicShare = "$HOME/shared";
music = "$HOME/music";
};
};
}

View file

@ -0,0 +1,7 @@
_: {
home.file = {
".xkb/symbols/us_gbp_map".source = ./layout.xkb;
};
home.keyboard = null;
}