mirror of
https://github.com/kittywitch/nixfiles.git
synced 2026-02-09 12:29:19 -08:00
Refactors, konawall-py for darwin, sumireko update to Sonoma
This commit is contained in:
parent
091ddb5b91
commit
bc61d82487
151 changed files with 691 additions and 792 deletions
93
home/environments/darwin/konawall.nix
Normal file
93
home/environments/darwin/konawall.nix
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
konawallConfig = {
|
||||
interval = 300;
|
||||
rotate = true;
|
||||
source = "konachan";
|
||||
tags = [
|
||||
"rating:s"
|
||||
"score:>=50"
|
||||
"width:>=1500"
|
||||
];
|
||||
logging = {
|
||||
file = "INFO";
|
||||
console = "DEBUG";
|
||||
};
|
||||
};
|
||||
in {
|
||||
home.file."Library/Application Support/konawall/config.toml".source = (pkgs.formats.toml {}).generate "konawall-config" konawallConfig;
|
||||
|
||||
launchd.agents.konawall = {
|
||||
enable = true;
|
||||
config = let
|
||||
replacementPyProject = ''
|
||||
[tool.poetry]
|
||||
name = "konawall"
|
||||
version = "0.1.0"
|
||||
license = "MIT"
|
||||
description = "A hopefully cross-platform service for fetching wallpapers and setting them"
|
||||
authors = [
|
||||
"Kat Inskip <kat@inskip.me>"
|
||||
]
|
||||
readme = "README.MD"
|
||||
packages = [
|
||||
{include = "konawall"}
|
||||
]
|
||||
|
||||
[tool.poetry.scripts]
|
||||
gui = "konawall.gui:main"
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.11"
|
||||
pillow = "^10.0.1"
|
||||
screeninfo = "^0.8.1"
|
||||
requests = "^2.31.0"
|
||||
termcolor = "^2.3.0"
|
||||
wxpython = "^4.2.1"
|
||||
humanfriendly = "^10.0"
|
||||
xdg-base-dirs = "^6.0.1"
|
||||
|
||||
[build-system]
|
||||
requires = [ "poetry-core" ]
|
||||
build-backend = "poetry.core.masonry.api"
|
||||
'';
|
||||
konawallInitialize = pkgs.writeScriptBin "konawall-initialize" ''
|
||||
#!/usr/bin/env bash
|
||||
set -xeuo pipefail
|
||||
# get a temporary directory
|
||||
tmpDir=$(mktemp -d)
|
||||
# copy the repository to the temporary directory recursively without keeping the permissions from the nix store
|
||||
${pkgs.coreutils}/bin/cp -r --no-preserve=mode,ownership "${inputs.konawall-py.outPath}" "$tmpDir/konawall"
|
||||
# change directory to the copy
|
||||
cd $tmpDir/konawall
|
||||
# overwrite the pyproject.toml with the one that we want
|
||||
# use a EOF heredoc to avoid escaping the quotes
|
||||
cat <<EOF > pyproject.toml
|
||||
${replacementPyProject}
|
||||
EOF
|
||||
# install the dependencies
|
||||
${pkgs.poetry}/bin/poetry lock --no-update
|
||||
${pkgs.poetry}/bin/poetry install
|
||||
# run the package
|
||||
${pkgs.poetry}/bin/poetry run gui
|
||||
'';
|
||||
in {
|
||||
# yeah if https://github.com/NixOS/nixpkgs/issues/233265 and https://github.com/NixOS/nixpkgs/issues/101360
|
||||
# and https://github.com/NixOS/nixpkgs/issues/105156 were ok we might be able to do this
|
||||
#Program = "${inputs.konawall-py.packages.${pkgs.system}.konawall-py}/bin/konawall";
|
||||
#ProgramArguments = ["${inputs.konawall-py.packages.${pkgs.system}.konawall-py}/bin/konawall"];
|
||||
# it's unfortunate that this has to be done this way, for the most part.
|
||||
ProgramArguments = [
|
||||
"/usr/bin/env"
|
||||
"bash"
|
||||
"${konawallInitialize}/bin/konawall-initialize"
|
||||
];
|
||||
RunAtLoad = true;
|
||||
KeepAlive = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
32
home/environments/gnome/dconf.nix
Normal file
32
home/environments/gnome/dconf.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
_: {
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = [
|
||||
"brave-browser.desktop"
|
||||
"thunderbird.desktop"
|
||||
"nheko.desktop"
|
||||
"discord.desktop"
|
||||
"signal-desktop.desktop"
|
||||
"org.telegram.desktop.desktop"
|
||||
"codium.desktop"
|
||||
"obsidian.desktop"
|
||||
"org.wezfurlong.wezterm.desktop"
|
||||
"spotify.desktop"
|
||||
"steam.desktop"
|
||||
"org.gnome.Nautilus.desktop"
|
||||
"bitwarden.desktop"
|
||||
];
|
||||
};
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
enable-hot-corners = false;
|
||||
};
|
||||
"org/gnome/desktop/wm/preferences" = {
|
||||
workspace-names = ["Main"];
|
||||
resize-with-right-button = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
35
home/environments/gnome/extensions.nix
Normal file
35
home/environments/gnome/extensions.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{pkgs, ...}: {
|
||||
dconf = {
|
||||
settings = {
|
||||
"org/gnome/shell" = {
|
||||
disable-user-extensions = false;
|
||||
|
||||
# `gnome-extensions list` for a list
|
||||
enabled-extensions = [
|
||||
"user-theme@gnome-shell-extensions.gcampax.github.com"
|
||||
"trayIconsReloaded@selfmade.pl"
|
||||
"Vitals@CoreCoding.com"
|
||||
"dash-to-panel@jderose9.github.com"
|
||||
"space-bar@luchrioh"
|
||||
"date-menu-formatter@marcinjakubowski.github.com"
|
||||
];
|
||||
};
|
||||
"org/gnome/shell/extensions/date-menu-formatter" = {
|
||||
pattern = "y-MM-dd kk:mm XXX";
|
||||
"font-size" = "12";
|
||||
};
|
||||
"org/gnome/shell/extensions/vitals" = {
|
||||
"hot-sensors" = ["_memory_usage_" "_system_load_1m_" "__network-rx_max__" "_temperature_k10temp_tctl_"];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs.gnomeExtensions; [
|
||||
space-bar
|
||||
user-themes
|
||||
tray-icons-reloaded
|
||||
vitals
|
||||
dash-to-panel
|
||||
date-menu-formatter
|
||||
];
|
||||
}
|
||||
33
home/environments/gnome/gtk.nix
Normal file
33
home/environments/gnome/gtk.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{pkgs, ...}: {
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
|
||||
theme = {
|
||||
name = "palenight";
|
||||
package = pkgs.palenight-theme;
|
||||
};
|
||||
|
||||
cursorTheme = {
|
||||
name = "Numix-Cursor";
|
||||
package = pkgs.numix-cursor-theme;
|
||||
};
|
||||
|
||||
gtk3.extraConfig = {
|
||||
Settings = ''
|
||||
gtk-application-prefer-dark-theme=1
|
||||
'';
|
||||
};
|
||||
|
||||
gtk4.extraConfig = {
|
||||
Settings = ''
|
||||
gtk-application-prefer-dark-theme=1
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables.GTK_THEME = "palenight";
|
||||
}
|
||||
15
home/environments/gnome/ssh.nix
Normal file
15
home/environments/gnome/ssh.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.strings) fileContents;
|
||||
in {
|
||||
home.sessionVariables.GSM_SKIP_SSH_AGENT_WORKAROUND = "1";
|
||||
|
||||
# Disable gnome-keyring ssh-agent
|
||||
xdg.configFile."autostart/gnome-keyring-ssh.desktop".text = ''
|
||||
${fileContents "${pkgs.gnome3.gnome-keyring}/etc/xdg/autostart/gnome-keyring-ssh.desktop"}
|
||||
Hidden=true
|
||||
'';
|
||||
}
|
||||
33
home/environments/kde/gtk.nix
Normal file
33
home/environments/kde/gtk.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{pkgs, ...}: {
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
name = "Papirus";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
|
||||
theme = {
|
||||
name = "Arc";
|
||||
package = pkgs.arc-theme;
|
||||
};
|
||||
|
||||
cursorTheme = {
|
||||
name = "Numix-Cursor";
|
||||
package = pkgs.numix-cursor-theme;
|
||||
};
|
||||
|
||||
gtk3.extraConfig = {
|
||||
Settings = ''
|
||||
gtk-application-prefer-dark-theme=1
|
||||
'';
|
||||
};
|
||||
|
||||
gtk4.extraConfig = {
|
||||
Settings = ''
|
||||
gtk-application-prefer-dark-theme=1
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables.GTK_THEME = "Arc";
|
||||
}
|
||||
16
home/environments/kde/kde.nix
Normal file
16
home/environments/kde/kde.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
_: {
|
||||
programs.plasma = {
|
||||
configFile = {
|
||||
"kded5rc"."PlasmaBrowserIntegration"."shownCount" = 1;
|
||||
"kdeglobals"."WM"."activeBackground" = "231,232,235";
|
||||
"kdeglobals"."WM"."activeBlend" = "231,232,235";
|
||||
"kdeglobals"."WM"."activeForeground" = "92,97,108";
|
||||
"kdeglobals"."WM"."inactiveBackground" = "231,232,235";
|
||||
"kdeglobals"."WM"."inactiveBlend" = "231,232,235";
|
||||
"kdeglobals"."WM"."inactiveForeground" = "163,165,172";
|
||||
"kxkbrc"."Layout"."Options" = "terminate:ctrl_alt_bksp,ctrl:nocaps";
|
||||
"kxkbrc"."Layout"."ResetOldOptions" = true;
|
||||
"plasmarc"."Theme"."name" = "Arc";
|
||||
};
|
||||
};
|
||||
}
|
||||
17
home/environments/kde/konawall.nix
Normal file
17
home/environments/kde/konawall.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
desktop_entry = ''
|
||||
[Desktop Entry]
|
||||
Exec=${inputs.konawall-py.packages.${pkgs.system}.konawall-py}/bin/konawall
|
||||
Icon=
|
||||
Name=konawall
|
||||
Path=
|
||||
Terminal=False
|
||||
Type=Application
|
||||
'';
|
||||
in {
|
||||
xdg.configFile."autostart/konawall.desktop".text = desktop_entry;
|
||||
}
|
||||
10
home/environments/kde/qt.nix
Normal file
10
home/environments/kde/qt.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{pkgs, ...}: {
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme = "kde";
|
||||
style = {
|
||||
name = "arc";
|
||||
package = pkgs.arc-kde-theme;
|
||||
};
|
||||
};
|
||||
}
|
||||
8
home/environments/sway/barrier.nix
Normal file
8
home/environments/sway/barrier.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
_: {
|
||||
services.barrier.client = {
|
||||
enable = true;
|
||||
enableCrypto = true;
|
||||
enableDragDrop = true;
|
||||
server = "10.1.1.153";
|
||||
};
|
||||
}
|
||||
21
home/environments/sway/gtk.nix
Normal file
21
home/environments/sway/gtk.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
||||
7
home/environments/sway/layout.xkb
Normal file
7
home/environments/sway/layout.xkb
Normal 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] };
|
||||
};
|
||||
30
home/environments/sway/mako.nix
Normal file
30
home/environments/sway/mako.nix
Normal 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;
|
||||
};
|
||||
}
|
||||
337
home/environments/sway/sway.nix
Normal file
337
home/environments/sway/sway.nix
Normal 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
|
||||
'';
|
||||
};
|
||||
}
|
||||
95
home/environments/sway/waybar.nix
Normal file
95
home/environments/sway/waybar.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
84
home/environments/sway/waybar.sass
Normal file
84
home/environments/sway/waybar.sass
Normal 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
|
||||
20
home/environments/sway/wofi.nix
Normal file
20
home/environments/sway/wofi.nix
Normal 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 = "";
|
||||
};
|
||||
};
|
||||
}
|
||||
26
home/environments/sway/wofi.sass
Normal file
26
home/environments/sway/wofi.sass
Normal 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
|
||||
16
home/environments/sway/xdg.nix
Normal file
16
home/environments/sway/xdg.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
||||
7
home/environments/sway/xkb.nix
Normal file
7
home/environments/sway/xkb.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
_: {
|
||||
home.file = {
|
||||
".xkb/symbols/us_gbp_map".source = ./layout.xkb;
|
||||
};
|
||||
|
||||
home.keyboard = null;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue