mirror of
https://github.com/kittywitch/nixfiles.git
synced 2026-02-09 12:29:19 -08:00
feat: i3!
This commit is contained in:
parent
add8b013a4
commit
d463824ef1
35 changed files with 2150 additions and 156 deletions
10
home/environments/i3/catppuccin.nix
Normal file
10
home/environments/i3/catppuccin.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ config, lib, ... }: let
|
||||
inherit (config.catppuccin) sources;
|
||||
inherit (lib) mkBefore;
|
||||
cfg = config.catppuccin.sway;
|
||||
theme = "${sources.sway}/catppuccin-${cfg.flavor}";
|
||||
in {
|
||||
xsession.windowManager.i3.extraConfigEarly = ''
|
||||
${builtins.readFile theme}
|
||||
'';
|
||||
}
|
||||
5
home/environments/i3/dunst.nix
Normal file
5
home/environments/i3/dunst.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
_: {
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
157
home/environments/i3/i3.nix
Normal file
157
home/environments/i3/i3.nix
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
std,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (std) list;
|
||||
inherit (lib.modules) mkMerge;
|
||||
inherit (lib) mkOptionDefault mkDefault mapAttrs;
|
||||
in {
|
||||
home.packages = with pkgs; [
|
||||
maim
|
||||
pcmanfm
|
||||
pavucontrol
|
||||
xclip
|
||||
];
|
||||
services.i3gopher.enable = true;
|
||||
xsession.windowManager.i3 = {
|
||||
enable = true;
|
||||
package = pkgs.i3-gaps;
|
||||
extraConfig = ''
|
||||
workspace 1 output DP-2
|
||||
workspace 11 output HDMI-0
|
||||
'';
|
||||
config = let
|
||||
modifier = "Mod4";
|
||||
other_modifier = "Mod1";
|
||||
mod = modifier;
|
||||
mod2 = other_modifier;
|
||||
in {
|
||||
inherit modifier;
|
||||
fonts = [
|
||||
"Monaspace Krypton"
|
||||
"FontAwesome 6"
|
||||
];
|
||||
startup = [
|
||||
{ command = "~/.screenlayout/main.sh"; }
|
||||
{ command = "blueman-applet"; }
|
||||
];
|
||||
keybindings = let
|
||||
bindWorkspace = key: workspace: {
|
||||
"${mod}+${key}" = "workspace number ${workspace}";
|
||||
"${mod}+shift+${key}" = "move container to workspace number ${workspace}";
|
||||
};
|
||||
mapDefaultAttrs = e: mapAttrs (_: mkDefault) e;
|
||||
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));
|
||||
normalBindings = {
|
||||
"Print" = "exec --no-startup-id maim \"/home/$USER/Pictures/$(date)\"";
|
||||
"${mod2}+Print" = "exec --no-startup-id maim --window $(xdotool getactivewindow) \"/home/$USER/Pictures/$(date)\"";
|
||||
"Shift+Print" = "exec --no-startup-id maim --select \"/home/$USER/Pictures/$(date)\"";
|
||||
|
||||
"Ctrl+Print" = "exec --no-startup-id maim | xclip -selection clipboard -t image/png";
|
||||
"Ctrl+${mod2}+Print" = "exec --no-startup-id maim --window $(xdotool getactivewindow) | xclip -selection clipboard -t image/png";
|
||||
"Ctrl+Shift+Print" = "exec --no-startup-id maim --select | xclip -selection clipboard -t image/png";
|
||||
"${mod}+p" = "exec ${pkgs.dmenu}/bin/dmenu_run";
|
||||
"${mod}+x" = "exec sh -c '${pkgs.maim}/bin/maim -s | xclip -selection clipboard -t image/png'";
|
||||
"${mod}+Shift+x" = "exec sh -c '${pkgs.i3lock}/bin/i3lock -c 222222 & sleep 5 && xset dpms force of'";
|
||||
"${mod}+Return" = "exec ${config.programs.wezterm.package}/bin/wezterm";
|
||||
"${mod}+Tab" = "workspace back_and_forth";
|
||||
"${mod}+Shift+Tab" = "exec ${config.services.i3gopher.focus-last}";
|
||||
};
|
||||
in mkMerge (map mapDefaultAttrs ([ normalBindings ] ++ workspaceBindings));
|
||||
workspaceAutoBackAndForth = true;
|
||||
colors = {
|
||||
focused = {
|
||||
border = "$lavender";
|
||||
background = "$base";
|
||||
text = "$text";
|
||||
indicator = "$rosewater";
|
||||
childBorder = "$lavender";
|
||||
};
|
||||
focusedInactive = {
|
||||
border = "$overlay0";
|
||||
background = "$base";
|
||||
text = "$text";
|
||||
indicator = "$rosewater";
|
||||
childBorder = "$overlay0";
|
||||
};
|
||||
unfocused = {
|
||||
border = "$overlay0";
|
||||
background = "$base";
|
||||
text = "$text";
|
||||
indicator = "$rosewater";
|
||||
childBorder = "$overlay0";
|
||||
};
|
||||
urgent = {
|
||||
border = "$peach";
|
||||
background = "$base";
|
||||
text = "$peach";
|
||||
indicator = "$overlay0";
|
||||
childBorder = "$peach";
|
||||
};
|
||||
placeholder = {
|
||||
border = "$overlay0";
|
||||
background = "$base";
|
||||
text = "$text";
|
||||
indicator = "$overlay0";
|
||||
childBorder = "$overlay0";
|
||||
};
|
||||
background = "$base";
|
||||
};
|
||||
bars = [
|
||||
{
|
||||
# as if anyone was questioning that,
|
||||
position = "bottom";
|
||||
fonts = {
|
||||
names = [
|
||||
"Monaspace Krypton"
|
||||
"FontAwesome 6 Free"
|
||||
"FontAwesome 6 Brands"
|
||||
];
|
||||
size = "8";
|
||||
};
|
||||
colors = {
|
||||
background = "$base";
|
||||
statusline = "$text";
|
||||
separator = "$text";
|
||||
focusedBackground = "$base";
|
||||
focusedStatusline = "$text";
|
||||
focusedSeparator = "$base";
|
||||
focusedWorkspace = {
|
||||
border ="$base";
|
||||
background = "$mauve";
|
||||
text = "$crust";
|
||||
};
|
||||
activeWorkspace = {
|
||||
border = "$base";
|
||||
background = "$surface2";
|
||||
text = "$text";
|
||||
};
|
||||
inactiveWorkspace = {
|
||||
border = "$base";
|
||||
background = "$base";
|
||||
text = "$text";
|
||||
};
|
||||
urgentWorkspace = {
|
||||
border = "$base";
|
||||
background = "$red";
|
||||
text = "$crust";
|
||||
};
|
||||
};
|
||||
trayOutput = "primary";
|
||||
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs ${config.xdg.configHome}/i3status-rust/config-gaybar.toml";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
55
home/environments/i3/i3status-rust.nix
Normal file
55
home/environments/i3/i3status-rust.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
_: {
|
||||
programs.i3status-rust = {
|
||||
enable = true;
|
||||
bars = {
|
||||
# YOU! I WANNA TAKE YOU TO A
|
||||
gaybar = {
|
||||
blocks = [
|
||||
{
|
||||
block = "cpu";
|
||||
interval = 1;
|
||||
}
|
||||
{
|
||||
block = "load";
|
||||
interval = 1;
|
||||
format = " $icon $1m ";
|
||||
}
|
||||
{
|
||||
block = "memory";
|
||||
format = " $icon $mem_total_used_percents.eng(w:2) ";
|
||||
}
|
||||
{
|
||||
block = "memory";
|
||||
format = " $icon_swap $swap_used_percents.eng(w:2) ";
|
||||
}
|
||||
{
|
||||
block = "nvidia_gpu";
|
||||
format = " $icon $utilization $memory $temperature ";
|
||||
}
|
||||
{
|
||||
block = "hueshift";
|
||||
}
|
||||
{
|
||||
block = "music";
|
||||
format = " $icon {$combo.str(max_w:60) $play |}";
|
||||
}
|
||||
{
|
||||
block = "sound";
|
||||
format = " $icon {$volume.eng(w:2) |}";
|
||||
}
|
||||
{
|
||||
block = "notify";
|
||||
format = " $icon {($notification_count.eng(w:1)) |}";
|
||||
}
|
||||
{
|
||||
block = "time";
|
||||
interval = 1;
|
||||
format = " $icon $timestamp.datetime(f:'%F %T %Z') ";
|
||||
}
|
||||
];
|
||||
theme = "ctp-latte";
|
||||
icons = "awesome6";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
42
home/environments/i3/konawall.nix
Normal file
42
home/environments/i3/konawall.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
konawallConfig = {
|
||||
interval = 30 * 60;
|
||||
rotate = true;
|
||||
source = "konachan";
|
||||
tags = [
|
||||
#"rating:s"
|
||||
"touhou"
|
||||
"score:>=50"
|
||||
"width:>=1500"
|
||||
];
|
||||
logging = {
|
||||
file = "INFO";
|
||||
console = "DEBUG";
|
||||
};
|
||||
};
|
||||
in {
|
||||
home.packages = [
|
||||
inputs.konawall-py.packages.${pkgs.system}.konawall-py
|
||||
];
|
||||
xdg.configFile = {
|
||||
"konawall/config.toml".source = (pkgs.formats.toml {}).generate "konawall-config" konawallConfig;
|
||||
};
|
||||
systemd.user.services.konawall-py-gnome = {
|
||||
Unit = {
|
||||
Description = "konawall-py";
|
||||
X-Restart-Triggers = [(toString config.xdg.configFile."konawall/config.toml".source)];
|
||||
After = ["graphical-session.target" "network-online.target"];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${inputs.konawall-py.packages.${pkgs.system}.konawall-py}/bin/konawall";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "1s";
|
||||
};
|
||||
Install = {WantedBy = ["graphical-session.target"];};
|
||||
};
|
||||
}
|
||||
5
home/environments/i3/picom.nix
Normal file
5
home/environments/i3/picom.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
_: {
|
||||
services.picom = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
6
home/environments/i3/redshift.nix
Normal file
6
home/environments/i3/redshift.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
_: {
|
||||
services.gammastep = {
|
||||
enable = true;
|
||||
provider = "geoclue2";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,6 +1,9 @@
|
|||
{pkgs, ...}: {
|
||||
home.sessionVariables = {
|
||||
QT_QPA_PLATFORMTHEME = "qt5ct";
|
||||
QT_QPA_PLATFORMTHEME = "qt6ct";
|
||||
#XDG_BACKEND = "x11";
|
||||
XDG_CURRENT_DESKTOP = "kde";
|
||||
#GDK_BACKEND = "x11";
|
||||
};
|
||||
home.packages = with pkgs.kdePackages; [
|
||||
kscreen
|
||||
|
|
@ -54,14 +57,9 @@
|
|||
systemsettings
|
||||
kcmutils
|
||||
];
|
||||
xdg.configFile."Kvantum/kvantum.kvconfig".source = (pkgs.formats.ini {}).generate "kvantum.kvconfig" {
|
||||
General.theme = "commonalitysol";
|
||||
};
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
workspace = {
|
||||
colorScheme = "CommonalitySol";
|
||||
theme = "CommonalitySol";
|
||||
};
|
||||
fonts = let
|
||||
katFont = {
|
||||
|
|
@ -80,7 +78,7 @@
|
|||
"kdeglobals"."General"."BrowserApplication" = "firefox.desktop";
|
||||
"kdeglobals"."General"."TerminalApplication" = "konsole";
|
||||
"kxkbrc"."Layout"."ResetOldOptions" = true;
|
||||
"kxkbrc"."Layout"."Options" = "terminate:ctrl_alt_bksp,ctrl:hyper_capscontrol";
|
||||
"kxkbrc"."Layout"."Options" = "terminate:ctrl_alt_bksp,ctrl:capscontrol";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@
|
|||
pkgs,
|
||||
...
|
||||
}: let
|
||||
konawallWithDelay = pkgs.writeShellScriptBin "konawall" ''
|
||||
sleep 5 && ${inputs.konawall-py.packages.${pkgs.system}.konawall-py}/bin/konawall
|
||||
konawallWithDelay = pkgs.writeShellScriptBin "konawally" ''
|
||||
sleep 5 && XDG_BACKEND=x11 GDK_BACKEND=x11 ${inputs.konawall-py.packages.${pkgs.system}.konawall-py}/bin/konawall
|
||||
'';
|
||||
desktop_entry = ''
|
||||
[Desktop Entry]
|
||||
Exec=${konawallWithDelay}/bin/konawall
|
||||
Exec=${konawallWithDelay}/bin/konawally
|
||||
Icon=
|
||||
Name=konawall
|
||||
Path=
|
||||
|
|
@ -31,6 +31,10 @@
|
|||
};
|
||||
};
|
||||
in {
|
||||
home.packages = [
|
||||
konawallWithDelay
|
||||
inputs.konawall-py.packages.${pkgs.system}.konawall-py
|
||||
];
|
||||
xdg.configFile = {
|
||||
"konawall/config.toml".source = (pkgs.formats.toml {}).generate "konawall-config" konawallConfig;
|
||||
"autostart/konawall.desktop".text = desktop_entry;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue