mirror of
https://forge.katzen.cafe/schrottkatze/nix-configs.git
synced 2024-11-22 05:14:42 +01:00
modules!!!
This commit is contained in:
parent
eb1a4786f4
commit
6f1ebdcc9a
|
@ -43,16 +43,10 @@ with builtins;
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
|
||||||
usbmuxd.enable = true;
|
|
||||||
gvfs.enable = true;
|
|
||||||
openssh.enable = true;
|
openssh.enable = true;
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
|
|
||||||
mtr.enable = true;
|
mtr.enable = true;
|
||||||
|
@ -60,7 +54,6 @@ with builtins;
|
||||||
enable = true;
|
enable = true;
|
||||||
enableSSHSupport = true;
|
enableSSHSupport = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
time.timeZone = "Europe/Berlin";
|
time.timeZone = "Europe/Berlin";
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./desktop.nix
|
./desktop
|
||||||
./terminal.nix
|
./terminal.nix
|
||||||
./neovim.nix
|
./neovim.nix
|
||||||
./zsh.nix
|
./zsh.nix
|
||||||
|
|
|
@ -1,563 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.jade.desktop;
|
|
||||||
window-screenshot = pkgs.writeShellScriptBin "window-screenshot.sh" (builtins.readFile ../scripts/desktop/window-screenshot.sh);
|
|
||||||
# desktop-ctl = pkgs.writeShellScriptBin "desktop-ctl.sh" (builtins.readFile ../scripts/desktop/desktop-ctl.sh);
|
|
||||||
desktop-ctl = import ../scripts/desktop/desktopctl.nix { pkgs = pkgs; };
|
|
||||||
# search and open in browser
|
|
||||||
searchwolf = import ../scripts/desktop/searchwolf.nix { pkgs = pkgs; };
|
|
||||||
# permaclip
|
|
||||||
pc-get = pkgs.writeShellScriptBin "pc-get.sh" (builtins.readFile ../scripts/desktop/permaclip/pc-get.sh);
|
|
||||||
pc-set = pkgs.writeShellScriptBin "pc-set.sh" (builtins.readFile ../scripts/desktop/permaclip/pc-set.sh);
|
|
||||||
em-record = pkgs.writeShellScriptBin "em-record.sh" (builtins.readFile ../scripts/desktop/macros/record.sh);
|
|
||||||
em-play = pkgs.writeShellScriptBin "em-play.sh" (builtins.readFile ../scripts/desktop/macros/play.sh);
|
|
||||||
em-play-loop = pkgs.writeShellScriptBin "em-play-loop.sh" (builtins.readFile ../scripts/desktop/macros/play-loop.sh);
|
|
||||||
ocr-screenshot = pkgs.writeShellScriptBin "ocr-screenshot.sh" (builtins.readFile ../scripts/desktop/ocr-screenshot.sh);
|
|
||||||
# rofi calculator copied from https://github.com/barbuk/menu-qalc
|
|
||||||
menu-qalc = pkgs.writeShellScriptBin "menu-qalc" (builtins.readFile ../scripts/desktop/menu-qalc.sh);
|
|
||||||
#bitw = pkgs.buildGo118Module rec {
|
|
||||||
#pname = "bitw";
|
|
||||||
#version = "0.1.0";
|
|
||||||
#src = pkgs.fetchFromGitHub {
|
|
||||||
#owner = "mvdan";
|
|
||||||
#repo = "bitw";
|
|
||||||
#rev = "9da6ca0287ae8e4b1aa7fcdf7c4e8c2736718c3b";
|
|
||||||
#sha256 = "sha256-qe9y6BEsfsEiPFXlM/SFliSd+2fnfDMHyw/O6EE5hpA=";
|
|
||||||
#};
|
|
||||||
#nativeBuildInputs = with pkgs; [ gitMinimal ];
|
|
||||||
#doCheck = false;
|
|
||||||
#vendorHash = "sha256-KQr0DtyH3xzlFwsDl3MGLRRLQC4+EtdTOG7IhmNCzV4=";
|
|
||||||
#vendorHash = null;
|
|
||||||
#GOFLAGS = "-mod=readonly";
|
|
||||||
#proxyVendor = true;
|
|
||||||
#deleteVendor = true;
|
|
||||||
#preBuild = ''
|
|
||||||
#go mod vendor
|
|
||||||
#'';
|
|
||||||
#};
|
|
||||||
in with lib; {
|
|
||||||
options.jade.desktop = {
|
|
||||||
enable = mkEnableOption "Enable the i3 setup";
|
|
||||||
compositing = mkEnableOption "Enable compositing via picom";
|
|
||||||
};
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
programs.kdeconnect.enable = true;
|
|
||||||
fonts.fonts = with pkgs; [
|
|
||||||
nerdfonts montserrat noto-fonts atkinson-hyperlegible
|
|
||||||
];
|
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
hardware.keyboard.uhk.enable = true;
|
|
||||||
hardware.spacenavd.enable = true;
|
|
||||||
programs.seahorse.enable = true;
|
|
||||||
security.pam.services.jade.enableGnomeKeyring = true;
|
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ 8384 22000 ];
|
|
||||||
networking.firewall.allowedUDPPorts = [ 8080 22000 21027 ];
|
|
||||||
systemd.services."NetworkManager-wait-online".enable = false;
|
|
||||||
|
|
||||||
|
|
||||||
qt.platformTheme = "qt5ct";
|
|
||||||
virtualisation.libvirtd.enable = true;
|
|
||||||
|
|
||||||
boot.plymouth = {
|
|
||||||
enable = true;
|
|
||||||
#theme = "glow";
|
|
||||||
};
|
|
||||||
programs = {
|
|
||||||
corectrl.enable = true;
|
|
||||||
noisetorch.enable = true;
|
|
||||||
|
|
||||||
adb.enable = true;
|
|
||||||
};
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(import (builtins.fetchTarball "https://github.com/PrismLauncher/PrismLauncher/archive/develop.tar.gz")).overlay
|
|
||||||
];
|
|
||||||
environment.sessionVariables = rec {
|
|
||||||
QT_QPA_PLATFORMTHEME = "qt5ct";
|
|
||||||
TERMINAL = "kitty";
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
printing.enable = true;
|
|
||||||
mullvad-vpn.enable = true;
|
|
||||||
gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
xserver = {
|
|
||||||
layout = "us";
|
|
||||||
xkbVariant = "altgr-intl";
|
|
||||||
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
wacom.enable = true;
|
|
||||||
libinput = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
desktopManager = {
|
|
||||||
xterm.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
displayManager = {
|
|
||||||
defaultSession = "none+i3";
|
|
||||||
gdm.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
windowManager.i3 = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.i3-gaps;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
gnome.gdm i3lock-fancy rofi rofimoji volumeicon feh xorg.xinput dunst
|
|
||||||
arandr lxappearance gruvbox-dark-gtk gruvbox-dark-icons-gtk
|
|
||||||
gruvterial-theme flameshot tesseract5 imagemagick xclip polybar kitty
|
|
||||||
xkeysnail gtk-engine-murrine playerctl xmacro
|
|
||||||
libwacom wacomtablet xorg.xev
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
#alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
jack.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
syncthing = rec {
|
|
||||||
enable = true;
|
|
||||||
user = "jade";
|
|
||||||
dataDir = "/home/${user}/Documents";
|
|
||||||
configDir = "/home/${user}/Documents/.config/syncthing";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# desktop things that arent the de {{{
|
|
||||||
networking = {
|
|
||||||
networkmanager.wifi.backend = "iwd";
|
|
||||||
extraHosts = ''
|
|
||||||
127.0.0.1 www.youtube.com
|
|
||||||
127.0.0.1 www.reddit.com
|
|
||||||
127.0.0.1 www.tiktok.com
|
|
||||||
127.0.0.1 www.twitter.com
|
|
||||||
127.0.0.1 www.instagram.com
|
|
||||||
127.0.0.1 www.facebook.com
|
|
||||||
127.0.0.1 www.snapchat.com
|
|
||||||
|
|
||||||
127.0.0.1 youtube.com
|
|
||||||
127.0.0.1 reddit.com
|
|
||||||
127.0.0.1 tiktok.com
|
|
||||||
127.0.0.1 twitter.com
|
|
||||||
127.0.0.1 instagram.com
|
|
||||||
127.0.0.1 facebook.com
|
|
||||||
127.0.0.1 snapchat.com
|
|
||||||
|
|
||||||
127.0.0.1 google-analytics.com
|
|
||||||
127.0.0.1 stats.g.doubleclick.net
|
|
||||||
127.0.0.1 googleadservices.com
|
|
||||||
127.0.0.1 googletagmanager.com
|
|
||||||
127.0.0.1 googletagservices.com
|
|
||||||
127.0.0.1 googlesyndication.com
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
# }}}
|
|
||||||
home-manager.users.jade = { pkgs, ... }: {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
# from environment.systemPackages cleanup
|
|
||||||
pavucontrol font-manager xdotool xorg.xwininfo gparted
|
|
||||||
networkmanagerapplet pulseaudioFull speedtest-cli librewolf firefox vlc
|
|
||||||
xfce.thunar xfce.tumbler xfce.thunar-archive-plugin gnome.file-roller
|
|
||||||
uhk-agent cool-retro-term lutris xorg.xhost xdg-desktop-portal-gtk nheko
|
|
||||||
obsidian audacity easyeffects virt-manager evince openrgb krita gimp
|
|
||||||
inkscape-with-extensions virglrenderer ddccontrol-db
|
|
||||||
firebird-emu obs-studio kdenlive fspy spacenav-cube-example cava
|
|
||||||
spacenavd libspnav evolution godot colmap gitg
|
|
||||||
gnome-builder gpick qdirstat ffmpeg_5 scribus libimobiledevice
|
|
||||||
libimobiledevice-glue ifuse usbmuxd libusbmuxd gvfs gphoto2 gphoto2fs
|
|
||||||
phockup digikam fluent-reader nextcloud-client
|
|
||||||
|
|
||||||
# mullvad currently broken?
|
|
||||||
mullvad-vpn
|
|
||||||
|
|
||||||
# external
|
|
||||||
libnotify
|
|
||||||
i3lock-fancy rofi rofimoji volumeicon feh xorg.xinput dunst
|
|
||||||
arandr lxappearance gruvbox-dark-gtk gruvbox-dark-icons-gtk
|
|
||||||
gruvterial-theme flameshot tesseract5 imagemagick xclip polybar kitty
|
|
||||||
nomacs # image viewer
|
|
||||||
xkeysnail gtk-engine-murrine playerctl xmacro pa_applet brightnessctl
|
|
||||||
drawing # drwaing!
|
|
||||||
libqalculate # needed by menu-qalc
|
|
||||||
ddgr jq # needed by searchwolf
|
|
||||||
brillo # kb backlight
|
|
||||||
|
|
||||||
# pw manager
|
|
||||||
bitwarden bitwarden-cli
|
|
||||||
|
|
||||||
# custom scripts
|
|
||||||
window-screenshot desktop-ctl em-record em-play em-play-loop ocr-screenshot menu-qalc
|
|
||||||
pc-get pc-set searchwolf
|
|
||||||
|
|
||||||
# themes
|
|
||||||
gruvbox-dark-gtk gruvbox-dark-icons-gtk
|
|
||||||
|
|
||||||
# meow
|
|
||||||
oneko
|
|
||||||
|
|
||||||
];
|
|
||||||
services.kdeconnect = {
|
|
||||||
enable = true;
|
|
||||||
indicator = true;
|
|
||||||
};
|
|
||||||
# i3 {{{
|
|
||||||
xsession = {
|
|
||||||
enable = true;
|
|
||||||
windowManager.i3 = {
|
|
||||||
enable = true;
|
|
||||||
config = {
|
|
||||||
bars = [];
|
|
||||||
terminal = "kitty";
|
|
||||||
workspaceAutoBackAndForth = true;
|
|
||||||
focus = {
|
|
||||||
followMouse = false;
|
|
||||||
};
|
|
||||||
# Startup {{{
|
|
||||||
startup = [
|
|
||||||
# Keyboard remapping
|
|
||||||
{ command = "xhost +"; }
|
|
||||||
{ command = "xkeysnail ${../other/xkeysnail.py}"; always = true; }
|
|
||||||
{ command = "sleep 4 && setxkbmap -layout us -variant altgr-intl"; always = true; }
|
|
||||||
{ command = "feh --bg-fill ${../other/wallpaper.jpg}"; always = true; notification = false; }
|
|
||||||
{ command = "picom"; }
|
|
||||||
{ command = "pkill nm-applet; nm-applet"; always = true; }
|
|
||||||
{ command = "pkill pa-applet; pa-applet"; always = true; }
|
|
||||||
{ command = "pkill oneko; oneko -tofocus -tora -position +-1+5 -fg palevioletred3 -bg pink -name 'Rose the desktop kitty'"; always = true; }
|
|
||||||
{ command = "mullvad-vpn --background"; always = true; }
|
|
||||||
{ command = "pkill polybar; polybar"; always = true; }
|
|
||||||
{ command = "bitwarden"; }
|
|
||||||
];
|
|
||||||
# }}}
|
|
||||||
# Assigns {{{
|
|
||||||
assigns = {
|
|
||||||
"1" = [ { class = "discord"; } { class = "nheko"; } ];
|
|
||||||
"2" = [ { class = "librewolf"; } ];
|
|
||||||
};
|
|
||||||
# }}}
|
|
||||||
# Keyboard shortcuts {{{
|
|
||||||
modifier = "Mod4";
|
|
||||||
modes = {
|
|
||||||
resize = with {
|
|
||||||
# mod = builtins.break config.xsession.windowManager.i3.config.modifier;
|
|
||||||
mod = builtins.break "Mod4";
|
|
||||||
}; {
|
|
||||||
aaa = builtins.break "a";
|
|
||||||
"${mod}+h" = "resize shrink width 10 px or 10 ppt";
|
|
||||||
"${mod}+j" = "resize grow height 10 px or 10 ppt";
|
|
||||||
"${mod}+k" = "resize shrink height 10 px or 10 ppt";
|
|
||||||
"${mod}+l" = "resize grow width 10 px or 10 ppt";
|
|
||||||
|
|
||||||
"Return" = "mode default";
|
|
||||||
"Escape" = "mode default";
|
|
||||||
"${mod}+r" = "mode default";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
keybindings = with {
|
|
||||||
#mod = config.xsession.windowManager.i3.config.modifier;
|
|
||||||
mod = "Mod4";
|
|
||||||
}; lib.mkOptionDefault {
|
|
||||||
# switch window focus
|
|
||||||
"${mod}+h" = "focus left";
|
|
||||||
"${mod}+j" = "focus down";
|
|
||||||
"${mod}+k" = "focus up";
|
|
||||||
"${mod}+l" = "focus right";
|
|
||||||
# move windows
|
|
||||||
"${mod}+Shift+h" = "move left";
|
|
||||||
"${mod}+Shift+j" = "move down";
|
|
||||||
"${mod}+Shift+k" = "move up";
|
|
||||||
"${mod}+Shift+l" = "move right";
|
|
||||||
# layout shit
|
|
||||||
"${mod}+shift+semicolon" = "split h";
|
|
||||||
"${mod}+semicolon" = "split v";
|
|
||||||
"${mod}+f" = "fullscreen toggle";
|
|
||||||
"${mod}+Shift+w" = "layout tabbed";
|
|
||||||
"${mod}+e" = "layout toggle split";
|
|
||||||
"${mod}+Shift+space" = "floating toggle";
|
|
||||||
# focus parents/children
|
|
||||||
"${mod}+Shift+a" = "focus parent";
|
|
||||||
"${mod}+Shift+c" = "focus child";
|
|
||||||
# screenshot
|
|
||||||
"${mod}+w" = "exec window-screenshot.sh";
|
|
||||||
"${mod}+s" = "exec flameshot gui -c -p $HOME/Pictures/screenshots";
|
|
||||||
"${mod}+a" = "exec flameshot screen -c -p $HOME/Pictures/screenshots";
|
|
||||||
"${mod}+t" = "exec ocr-screenshot.sh";
|
|
||||||
|
|
||||||
# rofi fuckery
|
|
||||||
"${mod}+d" = "exec --no-startup-id rofi -show drun -theme ${../other/rofi-themes/applauncher.rasi}";
|
|
||||||
"${mod}+space" = "exec --no-startup-id rofi -show combi -combi-show window#run -modes combi -theme ${../other/rofi-themes/applauncher.rasi}";
|
|
||||||
"${mod}+i" = "exec --no-startup-id rofimoji -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy";
|
|
||||||
"${mod}+Shift+e" = "exec --no-startup-id rofi -show \"desktopctl\" -modes \"desktopctl:${desktop-ctl.outPath}/bin/desktopctl\" -theme ${../other/rofi-themes/applauncher.rasi}";
|
|
||||||
"${mod}+m" = "exec --no-startup-id menu-qalc";
|
|
||||||
|
|
||||||
"${mod}+o" = "exec --no-startup-id rofi -show searchwolf -modes \"searchwolf:${searchwolf.outPath}/bin/searchwolf\"";
|
|
||||||
|
|
||||||
# audio
|
|
||||||
"XF86AudioRaiseVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status";
|
|
||||||
"XF86AudioLowerVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status";
|
|
||||||
"XF86AudioMute" = "exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status";
|
|
||||||
"XF86AudioMicMute" = "exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status";
|
|
||||||
|
|
||||||
"XF86AudioNext" = "exec playerctl next";
|
|
||||||
"XF86AudioPrev" = "exec playerctl previous";
|
|
||||||
"XF86AudioPause" = "exec playerctl pause";
|
|
||||||
"XF86AudioPlay" = "exec playerctl play";
|
|
||||||
"XF86AudioStop" = "exec playerctl stop";
|
|
||||||
|
|
||||||
"XF86MonBrightnessUp" = "exec brightnessctl set 5%+";
|
|
||||||
"XF86MonBrightnessDown" = "exec brightnessctl set 5%-";
|
|
||||||
|
|
||||||
"XF86KbdBrightnessUp" = "exec brillo -kA 10.0";
|
|
||||||
"XF86KbdBrightnessDown" = "exec brillo -kU 10.0";
|
|
||||||
|
|
||||||
# macros
|
|
||||||
"${mod}+q" = "exec em-record.sh";
|
|
||||||
"${mod}+p" = "exec em-play.sh";
|
|
||||||
"${mod}+Shift+p" = "exec em-play-loop.sh";
|
|
||||||
|
|
||||||
# permaclip
|
|
||||||
"${mod}+c" = "exec rofi -show register -modes \"register:${pc-set.outPath}/bin/pc-set.sh\" -theme gruvbox-dark";
|
|
||||||
"${mod}+v" = "exec rofi -show register -modes \"register:${pc-get.outPath}/bin/pc-get.sh\" -theme gruvbox-dark";
|
|
||||||
};
|
|
||||||
# }}}
|
|
||||||
# Visuals {{{
|
|
||||||
fonts = {
|
|
||||||
names = [ "Atkinson Hyperlegible" ];
|
|
||||||
style = "Regular";
|
|
||||||
size = 9.0;
|
|
||||||
};
|
|
||||||
gaps = {
|
|
||||||
#top = 24;
|
|
||||||
inner = 15;
|
|
||||||
outer = 0;
|
|
||||||
smartGaps = true;
|
|
||||||
smartBorders = "on";
|
|
||||||
};
|
|
||||||
colors = {
|
|
||||||
background = "#1d2021";
|
|
||||||
focused = { background = "#282828"; border = "#504945"; childBorder = "#7c6f64"; indicator = "#504945"; text = "#ebdbb2"; };
|
|
||||||
focusedInactive = { background = "#1d2021"; border = "#504945"; childBorder = "#665c54"; indicator = "#664c54"; text = "#d5c4a1"; };
|
|
||||||
placeholder = { background = "#1d2021"; border = "#00ff00"; childBorder = "#504945"; indicator = "#504945"; text = "#928374"; };
|
|
||||||
unfocused = { background = "#1d2021"; border = "#3c3836"; childBorder = "#504945"; indicator = "#504945"; text = "#bdae93"; };
|
|
||||||
urgent = { background = "#9d0006"; border = "#cc241d"; childBorder = "#3c3836"; indicator = "#fb4943"; text = "#ebdbb2"; };
|
|
||||||
};
|
|
||||||
window = {
|
|
||||||
border = 2;
|
|
||||||
titlebar = false;
|
|
||||||
};
|
|
||||||
# }}}
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# }}}
|
|
||||||
# Compositing {{{
|
|
||||||
services.picom = mkIf config.jade.desktop.compositing {
|
|
||||||
enable = true;
|
|
||||||
backend = "glx";
|
|
||||||
|
|
||||||
shadow = true;
|
|
||||||
shadowOffsets = [ 25 15 ];
|
|
||||||
shadowOpacity = 0.045;
|
|
||||||
shadowExclude = [
|
|
||||||
"class_g = 'Conky'"
|
|
||||||
"class_g ?= 'Notify-osd'"
|
|
||||||
"class_g = 'Cairo-clock'"
|
|
||||||
"_GTK_FRAME_EXTENTS@:c"
|
|
||||||
"class_g != 'Rofi'"
|
|
||||||
];
|
|
||||||
|
|
||||||
vSync = true;
|
|
||||||
#opacityRules = [
|
|
||||||
#"90:class_g = 'kitty'"
|
|
||||||
#"80:class_g = 'Signal'"
|
|
||||||
#"80:class_g = 'Rofi'"
|
|
||||||
#"80:class_g = 'discord'"
|
|
||||||
#"80:class_g = 'Mailspring'"
|
|
||||||
#"85:class_g = 'nheko'"
|
|
||||||
#"75:class_g = 'obsidian'"
|
|
||||||
#];
|
|
||||||
settings = {
|
|
||||||
# blur
|
|
||||||
#"detect-client-opacity = true;"
|
|
||||||
#"blur-method = \"gaussian\""
|
|
||||||
#"blur-size = 30"
|
|
||||||
#"blur-deviation = 15"
|
|
||||||
#"blur-background-fixed = true"
|
|
||||||
#"detect-client-opacity" = true;
|
|
||||||
#"blur-method" = "gaussian";
|
|
||||||
#"blur-size" = 30;
|
|
||||||
#"blur-deviation" = 15;
|
|
||||||
#"blur-background-fixed" = true;
|
|
||||||
|
|
||||||
# fading rofi
|
|
||||||
"fading" = true;
|
|
||||||
"fade-in-step" = 0.25;
|
|
||||||
"fade-out-step" = 0.2;
|
|
||||||
"fade-delta" = 20;
|
|
||||||
"fade-exclude" = [ "class_g != 'Rofi'" ];
|
|
||||||
# use damage information
|
|
||||||
"use-damage" = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# }}}
|
|
||||||
# Polybar {{{
|
|
||||||
services.polybar = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
script = "";
|
|
||||||
settings = {
|
|
||||||
colors = {
|
|
||||||
background = "#282828";
|
|
||||||
background-alt = "#3c3836";
|
|
||||||
foreground = "#ebdbb2";
|
|
||||||
primary = "#d65d0e";
|
|
||||||
secondary = "#fe8019";
|
|
||||||
alert = "#cc241d";
|
|
||||||
disabled = "#504945";
|
|
||||||
};
|
|
||||||
"bar/status" = {
|
|
||||||
# Style
|
|
||||||
width = "100%";
|
|
||||||
height = "24px";
|
|
||||||
radius = 0;
|
|
||||||
tray-position = "center";
|
|
||||||
background = "\${colors.background}";
|
|
||||||
foreground = "\${colors.foreground}";
|
|
||||||
line-size = "4px";
|
|
||||||
border-color = "#00000000";
|
|
||||||
padding-left = 0;
|
|
||||||
padding-right = 1;
|
|
||||||
module-margin = 1;
|
|
||||||
separator = "|";
|
|
||||||
separator-foreground = "\${colors.disabled}";
|
|
||||||
font-0 = "FiraCode Nerd Font";
|
|
||||||
modules-left = "xworkspaces xwindow";
|
|
||||||
modules-right = "memory cpu wlan battery date";
|
|
||||||
cursor-click = "pointer";
|
|
||||||
cursor-scroll = "ns-resize";
|
|
||||||
enable-ipc = true;
|
|
||||||
wm-restack = "i3";
|
|
||||||
override-redirect = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/xworkspaces" = {
|
|
||||||
type = "internal/xworkspaces";
|
|
||||||
label-active = "";
|
|
||||||
label-active-padding = 1;
|
|
||||||
label-occupied = "";
|
|
||||||
label-occupied-padding = 1;
|
|
||||||
label-urgent = "";
|
|
||||||
label-urgent-foreground = "\${colors.alert}";
|
|
||||||
label-urgent-padding = 1;
|
|
||||||
label-empty = "";
|
|
||||||
label-empty-foreground = "\${colors.disabled}";
|
|
||||||
label-empty-padding = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/xwindow" = {
|
|
||||||
type = "internal/xwindow";
|
|
||||||
label = "%title:0:60:...%";
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/memory" = {
|
|
||||||
type = "internal/memory";
|
|
||||||
interval = 2;
|
|
||||||
format-prefix = " ";
|
|
||||||
format-prefix-foreground = "\${colors.primary}";
|
|
||||||
label = "%percentage_used:2%%";
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/cpu" = {
|
|
||||||
type = "internal/cpu";
|
|
||||||
interval = "2";
|
|
||||||
format-prefix = " ";
|
|
||||||
format-prefix-foreground = "\${colors.primary}";
|
|
||||||
label = "%percentage:2%%";
|
|
||||||
};
|
|
||||||
|
|
||||||
"network-base" = {
|
|
||||||
type = "internal/network";
|
|
||||||
interval = 5;
|
|
||||||
format-connected = "<label-connected>";
|
|
||||||
format-disconnected = "<label-disconnected>";
|
|
||||||
label-disconnected = "%{F#F0C674}%ifname%%{F#707880} disconnected";
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/wlan" = {
|
|
||||||
"inherit" = "network-base";
|
|
||||||
interface-type = "wireless";
|
|
||||||
label-connected = "%{F#F0C674}%ifname%%{F-} %essid% %local_ip%";
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/battery" = {
|
|
||||||
type = "internal/battery";
|
|
||||||
poll-interval = 1;
|
|
||||||
full-at = 96;
|
|
||||||
battery = "BAT0";
|
|
||||||
adapter = "ADP1";
|
|
||||||
time-format = "%H:%M";
|
|
||||||
label-charging = "%percentage%% %time%";
|
|
||||||
format-charging = "<ramp-capacity> ﮣ <label-charging>";
|
|
||||||
label-discharging = "%percentage%% %time%";
|
|
||||||
format-discharging = "<ramp-capacity> <label-discharging>";
|
|
||||||
label-full = "%percentage%%";
|
|
||||||
format-full = " <label-full>";
|
|
||||||
label-low = "%percentage%%";
|
|
||||||
format-low = " <label-low>";
|
|
||||||
ramp.capacity = [ "" "" "" "" "" "" "" "" "" "" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/date" = {
|
|
||||||
type = "internal/date";
|
|
||||||
interval = 1;
|
|
||||||
date = "%Y-%m-%d %H:%M:%S";
|
|
||||||
label = "%date%";
|
|
||||||
label-foreground = "\${colors.foreground}";
|
|
||||||
};
|
|
||||||
|
|
||||||
"settings" = {
|
|
||||||
screenchange-reload = true;
|
|
||||||
pseudo-transparency = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# }}}
|
|
||||||
# gtk {{{
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
cursorTheme = {
|
|
||||||
package = pkgs.phinger-cursors;
|
|
||||||
name = "phinger-cursors";
|
|
||||||
size = 30;
|
|
||||||
};
|
|
||||||
font = {
|
|
||||||
package = pkgs.atkinson-hyperlegible;
|
|
||||||
name = "Atkinson Hyperlegible";
|
|
||||||
size = 11.5;
|
|
||||||
};
|
|
||||||
iconTheme = {
|
|
||||||
package = pkgs.gruvbox-dark-icons-gtk;
|
|
||||||
name = "gruvbox-dark-icons";
|
|
||||||
};
|
|
||||||
theme = {
|
|
||||||
package = pkgs.gruvbox-dark-gtk;
|
|
||||||
name = "gruvbox-dark";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# }}}
|
|
||||||
# Qt {{{
|
|
||||||
qt = {
|
|
||||||
enable = true;
|
|
||||||
platformTheme = "gtk";
|
|
||||||
};
|
|
||||||
# }}}
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
33
modules/desktop/audio.nix
Normal file
33
modules/desktop/audio.nix
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
config = {
|
||||||
|
programs = {
|
||||||
|
noisetorch.enable = true;
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
pavucontrol
|
||||||
|
pulseaudioFull
|
||||||
|
easyeffects
|
||||||
|
cava
|
||||||
|
volumeicon
|
||||||
|
playerctl
|
||||||
|
];
|
||||||
|
xsession.windowManager.i3.config.startup = [
|
||||||
|
{
|
||||||
|
command = "pkill volumeicon; volumeicon";
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
33
modules/desktop/cloud.nix
Normal file
33
modules/desktop/cloud.nix
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let cfg = config.jade.desktop.cloud;
|
||||||
|
in with lib; {
|
||||||
|
options.jade.desktop.cloud = {
|
||||||
|
enable = mkEnableOption "Enable cloud things";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
services.nextcloud-client = {
|
||||||
|
enable = true;
|
||||||
|
startInBackground = true;
|
||||||
|
};
|
||||||
|
programs.rbw = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
base_url = "vw.schrottkatze.de";
|
||||||
|
email = "jade@schrottkatze.de";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
fluent-reader
|
||||||
|
bitwarden
|
||||||
|
rofi-rbw
|
||||||
|
];
|
||||||
|
xsession.windowManager.i3.config.startup = [
|
||||||
|
{
|
||||||
|
command = "bitwarden";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
40
modules/desktop/compositing.nix
Normal file
40
modules/desktop/compositing.nix
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.jade.desktop.compositing;
|
||||||
|
in with lib; {
|
||||||
|
options.jade.desktop.compositing = {
|
||||||
|
enable = mkEnableOption "Enable compositing with picom";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.picom = {
|
||||||
|
enable = true;
|
||||||
|
backend = "glx";
|
||||||
|
|
||||||
|
shadow = true;
|
||||||
|
shadowOffsets = [ (-40) (-30) ];
|
||||||
|
shadowOpacity = 0.2;
|
||||||
|
shadowExclude = [
|
||||||
|
"class_g = 'Conky'"
|
||||||
|
"class_g ?= 'Notify-osd'"
|
||||||
|
"class_g = 'Cairo-clock'"
|
||||||
|
"_GTK_FRAME_EXTENTS@:c"
|
||||||
|
"class_g != 'Rofi'"
|
||||||
|
];
|
||||||
|
|
||||||
|
vSync = true;
|
||||||
|
settings = {
|
||||||
|
"shadow-radius" = 40;
|
||||||
|
# fading rofi
|
||||||
|
"fading" = true;
|
||||||
|
"fade-in-step" = 0.25;
|
||||||
|
"fade-out-step" = 0.2;
|
||||||
|
"fade-delta" = 20;
|
||||||
|
"fade-exclude" = [ "class_g != 'Rofi'" ];
|
||||||
|
# use damage information
|
||||||
|
"use-damage" = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# }}}
|
||||||
|
};
|
||||||
|
}
|
24
modules/desktop/creative.nix
Normal file
24
modules/desktop/creative.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let cfg = config.jade.desktop.creative;
|
||||||
|
in with lib; {
|
||||||
|
options.jade.desktop.creative = {
|
||||||
|
enable = mkEnableOption "Enable creative software";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
audacity
|
||||||
|
krita
|
||||||
|
gimp
|
||||||
|
inkscape-with-extensions
|
||||||
|
obs-studio
|
||||||
|
kdenlive
|
||||||
|
fspy
|
||||||
|
digikam
|
||||||
|
scribus
|
||||||
|
rawtherapee
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
378
modules/desktop/default.nix
Normal file
378
modules/desktop/default.nix
Normal file
|
@ -0,0 +1,378 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.jade.desktop;
|
||||||
|
window-screenshot = pkgs.writeShellScriptBin "window-screenshot.sh" (builtins.readFile ../../scripts/desktop/window-screenshot.sh);
|
||||||
|
# desktop-ctl = pkgs.writeShellScriptBin "desktop-ctl.sh" (builtins.readFile ../scripts/desktop/desktop-ctl.sh);
|
||||||
|
desktop-ctl = import ../../scripts/desktop/desktopctl.nix { pkgs = pkgs; };
|
||||||
|
# search and open in browser
|
||||||
|
searchwolf = import ../../scripts/desktop/searchwolf.nix { pkgs = pkgs; };
|
||||||
|
# permaclip
|
||||||
|
pc-get = pkgs.writeShellScriptBin "pc-get.sh" (builtins.readFile ../../scripts/desktop/permaclip/pc-get.sh);
|
||||||
|
pc-set = pkgs.writeShellScriptBin "pc-set.sh" (builtins.readFile ../../scripts/desktop/permaclip/pc-set.sh);
|
||||||
|
em-record = pkgs.writeShellScriptBin "em-record.sh" (builtins.readFile ../../scripts/desktop/macros/record.sh);
|
||||||
|
em-play = pkgs.writeShellScriptBin "em-play.sh" (builtins.readFile ../../scripts/desktop/macros/play.sh);
|
||||||
|
em-play-loop = pkgs.writeShellScriptBin "em-play-loop.sh" (builtins.readFile ../../scripts/desktop/macros/play-loop.sh);
|
||||||
|
ocr-screenshot = pkgs.writeShellScriptBin "ocr-screenshot.sh" (builtins.readFile ../../scripts/desktop/ocr-screenshot.sh);
|
||||||
|
# rofi calculator copied from https://github.com/barbuk/menu-qalc
|
||||||
|
menu-qalc = pkgs.writeShellScriptBin "menu-qalc" (builtins.readFile ../../scripts/desktop/menu-qalc.sh);
|
||||||
|
#bitw = pkgs.buildGo118Module rec {
|
||||||
|
#pname = "bitw";
|
||||||
|
#version = "0.1.0";
|
||||||
|
#src = pkgs.fetchFromGitHub {
|
||||||
|
#owner = "mvdan";
|
||||||
|
#repo = "bitw";
|
||||||
|
#rev = "9da6ca0287ae8e4b1aa7fcdf7c4e8c2736718c3b";
|
||||||
|
#sha256 = "sha256-qe9y6BEsfsEiPFXlM/SFliSd+2fnfDMHyw/O6EE5hpA=";
|
||||||
|
#};
|
||||||
|
#nativeBuildInputs = with pkgs; [ gitMinimal ];
|
||||||
|
#doCheck = false;
|
||||||
|
#vendorHash = "sha256-KQr0DtyH3xzlFwsDl3MGLRRLQC4+EtdTOG7IhmNCzV4=";
|
||||||
|
#vendorHash = null;
|
||||||
|
#GOFLAGS = "-mod=readonly";
|
||||||
|
#proxyVendor = true;
|
||||||
|
#deleteVendor = true;
|
||||||
|
#preBuild = ''
|
||||||
|
#go mod vendor
|
||||||
|
#'';
|
||||||
|
#};
|
||||||
|
in with lib; {
|
||||||
|
imports = (mkIf cfg.enable [
|
||||||
|
./audio.nix
|
||||||
|
./gaming.nix
|
||||||
|
./creative.nix # TODO: more fine grained choices, not every setup needs fspy or rawtherapee
|
||||||
|
./compositing.nix
|
||||||
|
./ios-compat.nix
|
||||||
|
./syncthing.nix
|
||||||
|
./kdeconnect.nix
|
||||||
|
./themeing.nix
|
||||||
|
./cloud.nix
|
||||||
|
./networking.nix
|
||||||
|
./polybar.nix
|
||||||
|
./social.nix
|
||||||
|
./xkeysnail.nix
|
||||||
|
]).content;
|
||||||
|
options.jade.desktop = {
|
||||||
|
enable = mkEnableOption "Enable the i3 setup";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
fonts.fonts = with pkgs; [
|
||||||
|
nerdfonts montserrat noto-fonts
|
||||||
|
];
|
||||||
|
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
hardware.keyboard.uhk.enable = true;
|
||||||
|
hardware.spacenavd.enable = true;
|
||||||
|
programs.seahorse.enable = true;
|
||||||
|
security.pam.services.jade.enableGnomeKeyring = true;
|
||||||
|
|
||||||
|
virtualisation.libvirtd.enable = true;
|
||||||
|
|
||||||
|
boot.plymouth = {
|
||||||
|
enable = true;
|
||||||
|
#theme = "glow";
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
printing.enable = true;
|
||||||
|
gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
|
xserver = {
|
||||||
|
layout = "us";
|
||||||
|
xkbVariant = "altgr-intl";
|
||||||
|
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
wacom.enable = true;
|
||||||
|
libinput = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
desktopManager = {
|
||||||
|
xterm.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
displayManager = {
|
||||||
|
defaultSession = "none+i3";
|
||||||
|
gdm.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
windowManager.i3 = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
gnome.gdm
|
||||||
|
i3lock-fancy
|
||||||
|
rofi
|
||||||
|
rofimoji
|
||||||
|
feh
|
||||||
|
xorg.xinput
|
||||||
|
dunst
|
||||||
|
arandr
|
||||||
|
flameshot
|
||||||
|
tesseract5
|
||||||
|
imagemagick
|
||||||
|
xclip
|
||||||
|
xmacro
|
||||||
|
libwacom
|
||||||
|
wacomtablet
|
||||||
|
xorg.xev
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
# sensible modules:
|
||||||
|
# - [x] audio
|
||||||
|
# - [x] compositing (picom configs)
|
||||||
|
# - [x] gaming (steam, lutris, prism...)
|
||||||
|
# - [x] cloud (pw manager, nextcloud, fluent reader)
|
||||||
|
# - [x] syncthing
|
||||||
|
# - [x] social (evolution, discord, matrix?)
|
||||||
|
# - [ ] set up mail accounts properly
|
||||||
|
# - [x] creative (obs, blender, gimp n shit)
|
||||||
|
# - [x] apple-stuff (ifuse etc)
|
||||||
|
# - [x] themeing
|
||||||
|
# - [x] vpn/networking stuff
|
||||||
|
# - [ ] keymap
|
||||||
|
# - [ ] seperate keymap by modules like autostarts
|
||||||
|
# - [x] kdeconnect
|
||||||
|
# - [x] polybar
|
||||||
|
# - [ ] bluetooth
|
||||||
|
# - [ ] spacenav support (with custom systemd service)
|
||||||
|
# - [ ] wacom config
|
||||||
|
# - [x] xkeysnail
|
||||||
|
# - [ ] oneko
|
||||||
|
# also useful:
|
||||||
|
# - every custom script its own flake n stuff
|
||||||
|
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
# categories
|
||||||
|
# filemanager
|
||||||
|
xfce.thunar
|
||||||
|
xfce.tumbler
|
||||||
|
xfce.thunar-archive-plugin
|
||||||
|
gnome.file-roller
|
||||||
|
# media/file viewers
|
||||||
|
vlc
|
||||||
|
evince
|
||||||
|
nomacs
|
||||||
|
|
||||||
|
# from environment.systemPackages cleanup
|
||||||
|
font-manager
|
||||||
|
xdotool
|
||||||
|
xorg.xwininfo
|
||||||
|
gparted
|
||||||
|
librewolf
|
||||||
|
firefox
|
||||||
|
uhk-agent
|
||||||
|
cool-retro-term
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
nheko
|
||||||
|
obsidian
|
||||||
|
virt-manager
|
||||||
|
ddccontrol-db
|
||||||
|
firebird-emu
|
||||||
|
godot
|
||||||
|
gitg
|
||||||
|
gpick
|
||||||
|
qdirstat
|
||||||
|
ffmpeg_5
|
||||||
|
|
||||||
|
spacenav-cube-example
|
||||||
|
spacenavd
|
||||||
|
libspnav
|
||||||
|
|
||||||
|
# external
|
||||||
|
libnotify
|
||||||
|
i3lock-fancy
|
||||||
|
rofi
|
||||||
|
rofimoji
|
||||||
|
feh
|
||||||
|
xorg.xinput
|
||||||
|
dunst
|
||||||
|
arandr
|
||||||
|
flameshot
|
||||||
|
tesseract5
|
||||||
|
imagemagick
|
||||||
|
xclip
|
||||||
|
polybar
|
||||||
|
kitty
|
||||||
|
xmacro
|
||||||
|
brightnessctl
|
||||||
|
drawing # drwaing!
|
||||||
|
libqalculate # needed by menu-qalc
|
||||||
|
ddgr jq # needed by searchwolf
|
||||||
|
brillo # kb backlight
|
||||||
|
|
||||||
|
# custom scripts
|
||||||
|
window-screenshot
|
||||||
|
desktop-ctl
|
||||||
|
em-record
|
||||||
|
em-play
|
||||||
|
em-play-loop
|
||||||
|
ocr-screenshot
|
||||||
|
menu-qalc
|
||||||
|
pc-get
|
||||||
|
pc-set
|
||||||
|
searchwolf
|
||||||
|
|
||||||
|
# meow
|
||||||
|
oneko
|
||||||
|
|
||||||
|
];
|
||||||
|
# i3 {{{
|
||||||
|
xsession = {
|
||||||
|
enable = true;
|
||||||
|
windowManager.i3 = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
bars = [];
|
||||||
|
workspaceAutoBackAndForth = true;
|
||||||
|
focus = {
|
||||||
|
followMouse = false;
|
||||||
|
};
|
||||||
|
# Startup {{{
|
||||||
|
startup = [
|
||||||
|
# wallpaper
|
||||||
|
{
|
||||||
|
command = "feh --bg-fill ${../../other/wallpaper.jpg}";
|
||||||
|
always = true;
|
||||||
|
notification = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
# meowmeowmeow
|
||||||
|
{
|
||||||
|
command = "pkill oneko; oneko -tofocus -tora -position +-1+5 -fg palevioletred3 -bg pink -name 'Rose the desktop kitty'";
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
# }}}
|
||||||
|
# Assigns {{{
|
||||||
|
assigns = {
|
||||||
|
"1" = [
|
||||||
|
{ class = "discord"; }
|
||||||
|
{ class = "nheko"; }
|
||||||
|
];
|
||||||
|
"2" = [
|
||||||
|
{ class = "librewolf"; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
# }}}
|
||||||
|
# Keyboard shortcuts {{{
|
||||||
|
modifier = "Mod4";
|
||||||
|
modes = {
|
||||||
|
resize = with {
|
||||||
|
# mod = builtins.break config.xsession.windowManager.i3.config.modifier;
|
||||||
|
mod = builtins.break "Mod4";
|
||||||
|
}; {
|
||||||
|
aaa = builtins.break "a";
|
||||||
|
"${mod}+h" = "resize shrink width 10 px or 10 ppt";
|
||||||
|
"${mod}+j" = "resize grow height 10 px or 10 ppt";
|
||||||
|
"${mod}+k" = "resize shrink height 10 px or 10 ppt";
|
||||||
|
"${mod}+l" = "resize grow width 10 px or 10 ppt";
|
||||||
|
|
||||||
|
"Return" = "mode default";
|
||||||
|
"Escape" = "mode default";
|
||||||
|
"${mod}+r" = "mode default";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
keybindings = with {
|
||||||
|
#mod = config.xsession.windowManager.i3.config.modifier;
|
||||||
|
mod = "Mod4";
|
||||||
|
}; lib.mkOptionDefault {
|
||||||
|
# switch window focus
|
||||||
|
"${mod}+h" = "focus left";
|
||||||
|
"${mod}+j" = "focus down";
|
||||||
|
"${mod}+k" = "focus up";
|
||||||
|
"${mod}+l" = "focus right";
|
||||||
|
# move windows
|
||||||
|
"${mod}+Shift+h" = "move left";
|
||||||
|
"${mod}+Shift+j" = "move down";
|
||||||
|
"${mod}+Shift+k" = "move up";
|
||||||
|
"${mod}+Shift+l" = "move right";
|
||||||
|
# layout shit
|
||||||
|
"${mod}+shift+semicolon" = "split h";
|
||||||
|
"${mod}+semicolon" = "split v";
|
||||||
|
"${mod}+f" = "fullscreen toggle";
|
||||||
|
"${mod}+Shift+w" = "layout tabbed";
|
||||||
|
"${mod}+e" = "layout toggle split";
|
||||||
|
"${mod}+Shift+space" = "floating toggle";
|
||||||
|
# focus parents/children
|
||||||
|
"${mod}+Shift+a" = "focus parent";
|
||||||
|
"${mod}+Shift+c" = "focus child";
|
||||||
|
# screenshot
|
||||||
|
"${mod}+w" = "exec window-screenshot.sh";
|
||||||
|
"${mod}+s" = "exec flameshot gui -c -p $HOME/Pictures/screenshots";
|
||||||
|
"${mod}+a" = "exec flameshot screen -c -p $HOME/Pictures/screenshots";
|
||||||
|
"${mod}+t" = "exec ocr-screenshot.sh";
|
||||||
|
|
||||||
|
# rofi fuckery
|
||||||
|
"${mod}+d" = "exec --no-startup-id rofi -show drun -theme ${../../other/rofi-themes/applauncher.rasi}";
|
||||||
|
"${mod}+space" = "exec --no-startup-id rofi -show combi -combi-show window#run -modes combi -theme ${../../other/rofi-themes/applauncher.rasi}";
|
||||||
|
"${mod}+i" = "exec --no-startup-id rofimoji -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy";
|
||||||
|
"${mod}+Shift+e" = "exec --no-startup-id rofi -show \"desktopctl\" -modes \"desktopctl:${desktop-ctl.outPath}/bin/desktopctl\" -theme ${../../other/rofi-themes/applauncher.rasi}";
|
||||||
|
"${mod}+m" = "exec --no-startup-id menu-qalc";
|
||||||
|
|
||||||
|
"${mod}+o" = "exec --no-startup-id rofi -show searchwolf -modes \"searchwolf:${searchwolf.outPath}/bin/searchwolf\"";
|
||||||
|
|
||||||
|
# audio
|
||||||
|
"XF86AudioRaiseVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status";
|
||||||
|
"XF86AudioLowerVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status";
|
||||||
|
"XF86AudioMute" = "exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status";
|
||||||
|
"XF86AudioMicMute" = "exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status";
|
||||||
|
|
||||||
|
"XF86AudioNext" = "exec playerctl next";
|
||||||
|
"XF86AudioPrev" = "exec playerctl previous";
|
||||||
|
"XF86AudioPause" = "exec playerctl pause";
|
||||||
|
"XF86AudioPlay" = "exec playerctl play";
|
||||||
|
"XF86AudioStop" = "exec playerctl stop";
|
||||||
|
|
||||||
|
"XF86MonBrightnessUp" = "exec brightnessctl set 5%+";
|
||||||
|
"XF86MonBrightnessDown" = "exec brightnessctl set 5%-";
|
||||||
|
|
||||||
|
"XF86KbdBrightnessUp" = "exec brillo -kA 10.0";
|
||||||
|
"XF86KbdBrightnessDown" = "exec brillo -kU 10.0";
|
||||||
|
|
||||||
|
# macros
|
||||||
|
"${mod}+q" = "exec em-record.sh";
|
||||||
|
"${mod}+p" = "exec em-play.sh";
|
||||||
|
"${mod}+Shift+p" = "exec em-play-loop.sh";
|
||||||
|
|
||||||
|
# permaclip
|
||||||
|
"${mod}+c" = "exec rofi -show register -modes \"register:${pc-set.outPath}/bin/pc-set.sh\" -theme gruvbox-dark";
|
||||||
|
"${mod}+v" = "exec rofi -show register -modes \"register:${pc-get.outPath}/bin/pc-get.sh\" -theme gruvbox-dark";
|
||||||
|
};
|
||||||
|
# }}}
|
||||||
|
# Visuals {{{
|
||||||
|
fonts = {
|
||||||
|
names = [ "Atkinson Hyperlegible" ];
|
||||||
|
style = "Regular";
|
||||||
|
size = 9.0;
|
||||||
|
};
|
||||||
|
gaps = {
|
||||||
|
#top = 24;
|
||||||
|
inner = 15;
|
||||||
|
outer = 0;
|
||||||
|
smartGaps = true;
|
||||||
|
smartBorders = "on";
|
||||||
|
};
|
||||||
|
colors = {
|
||||||
|
background = "#1d2021";
|
||||||
|
focused = { background = "#282828"; border = "#504945"; childBorder = "#7c6f64"; indicator = "#504945"; text = "#ebdbb2"; };
|
||||||
|
focusedInactive = { background = "#1d2021"; border = "#504945"; childBorder = "#665c54"; indicator = "#664c54"; text = "#d5c4a1"; };
|
||||||
|
placeholder = { background = "#1d2021"; border = "#00ff00"; childBorder = "#504945"; indicator = "#504945"; text = "#928374"; };
|
||||||
|
unfocused = { background = "#1d2021"; border = "#3c3836"; childBorder = "#504945"; indicator = "#504945"; text = "#bdae93"; };
|
||||||
|
urgent = { background = "#9d0006"; border = "#cc241d"; childBorder = "#3c3836"; indicator = "#fb4943"; text = "#ebdbb2"; };
|
||||||
|
};
|
||||||
|
window = {
|
||||||
|
border = 2;
|
||||||
|
titlebar = false;
|
||||||
|
};
|
||||||
|
# }}}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
21
modules/desktop/gaming.nix
Normal file
21
modules/desktop/gaming.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.jade.desktop.gaming;
|
||||||
|
in with lib; {
|
||||||
|
options.jade.desktop.gaming = {
|
||||||
|
enable = mkEnableOption "Enable gaming stuff";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(import (builtins.fetchTarball "https://github.com/PrismLauncher/PrismLauncher/archive/develop.tar.gz")).overlay
|
||||||
|
];
|
||||||
|
programs.steam.enable = true;
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
lutris
|
||||||
|
prismlauncher
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
24
modules/desktop/ios-compat.nix
Normal file
24
modules/desktop/ios-compat.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let cfg = config.jade.desktop.ios-compat;
|
||||||
|
in with lib; {
|
||||||
|
options.jade.desktop.ios-compat = {
|
||||||
|
enable = mkEnableOption "Enable the ios compatability programs";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services = {
|
||||||
|
usbmuxd.enable = true;
|
||||||
|
gvfs.enable = true;
|
||||||
|
};
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
libimobiledevice
|
||||||
|
libimobiledevice-glue
|
||||||
|
ifuse
|
||||||
|
usbmuxd
|
||||||
|
libusbmuxd
|
||||||
|
gvfs
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
17
modules/desktop/kdeconnect.nix
Normal file
17
modules/desktop/kdeconnect.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let cfg = config.jade.desktop.kdeconnect;
|
||||||
|
in with lib; {
|
||||||
|
options.jade.desktop.kdeconnect = {
|
||||||
|
enable = mkEnableOption "Enable KDE connect";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.kdeconnect.enable = true;
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
services.kdeconnect = {
|
||||||
|
enable = true;
|
||||||
|
indicator = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
63
modules/desktop/networking.nix
Normal file
63
modules/desktop/networking.nix
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
config = {
|
||||||
|
networking = {
|
||||||
|
networkmanager.wifi.backend = "iwd";
|
||||||
|
firewall = {
|
||||||
|
allowedTCPPorts = [
|
||||||
|
8384
|
||||||
|
22000
|
||||||
|
];
|
||||||
|
allowedUDPPorts = [
|
||||||
|
8080
|
||||||
|
22000
|
||||||
|
21027
|
||||||
|
];
|
||||||
|
};
|
||||||
|
extraHosts = ''
|
||||||
|
127.0.0.1 www.youtube.com
|
||||||
|
127.0.0.1 www.reddit.com
|
||||||
|
127.0.0.1 www.tiktok.com
|
||||||
|
127.0.0.1 www.twitter.com
|
||||||
|
127.0.0.1 www.instagram.com
|
||||||
|
127.0.0.1 www.facebook.com
|
||||||
|
127.0.0.1 www.snapchat.com
|
||||||
|
|
||||||
|
127.0.0.1 youtube.com
|
||||||
|
127.0.0.1 reddit.com
|
||||||
|
127.0.0.1 tiktok.com
|
||||||
|
127.0.0.1 twitter.com
|
||||||
|
127.0.0.1 instagram.com
|
||||||
|
127.0.0.1 facebook.com
|
||||||
|
127.0.0.1 snapchat.com
|
||||||
|
|
||||||
|
127.0.0.1 google-analytics.com
|
||||||
|
127.0.0.1 stats.g.doubleclick.net
|
||||||
|
127.0.0.1 googleadservices.com
|
||||||
|
127.0.0.1 googletagmanager.com
|
||||||
|
127.0.0.1 googletagservices.com
|
||||||
|
127.0.0.1 googlesyndication.com
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
systemd.services."NetworkManager-wait-online".enable = false;
|
||||||
|
services.mullvad-vpn.enable = true;
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
networkmanagerapplet
|
||||||
|
mullvad-vpn
|
||||||
|
speedtest-cli
|
||||||
|
];
|
||||||
|
xsession.windowManager.i3.config.startup = [
|
||||||
|
{
|
||||||
|
command = "pkill nm-applet; nm-applet";
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "mullvad-vpn --background";
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
134
modules/desktop/polybar.nix
Normal file
134
modules/desktop/polybar.nix
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
config = {
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
xsession.windowManager.i3.config.startup = [
|
||||||
|
{
|
||||||
|
command = "pkill polybar; polybar";
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
services.polybar = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
script = "";
|
||||||
|
settings = {
|
||||||
|
colors = {
|
||||||
|
background = "#282828";
|
||||||
|
background-alt = "#3c3836";
|
||||||
|
foreground = "#ebdbb2";
|
||||||
|
primary = "#d65d0e";
|
||||||
|
secondary = "#fe8019";
|
||||||
|
alert = "#cc241d";
|
||||||
|
disabled = "#504945";
|
||||||
|
};
|
||||||
|
"bar/status" = {
|
||||||
|
# Style
|
||||||
|
width = "100%";
|
||||||
|
height = "24px";
|
||||||
|
radius = 0;
|
||||||
|
tray-position = "center";
|
||||||
|
background = "\${colors.background}";
|
||||||
|
foreground = "\${colors.foreground}";
|
||||||
|
line-size = "4px";
|
||||||
|
border-color = "#00000000";
|
||||||
|
padding-left = 0;
|
||||||
|
padding-right = 1;
|
||||||
|
module-margin = 1;
|
||||||
|
separator = "|";
|
||||||
|
separator-foreground = "\${colors.disabled}";
|
||||||
|
font-0 = "FiraCode Nerd Font";
|
||||||
|
modules-left = "xworkspaces xwindow";
|
||||||
|
modules-right = "memory cpu wlan battery date";
|
||||||
|
cursor-click = "pointer";
|
||||||
|
cursor-scroll = "ns-resize";
|
||||||
|
enable-ipc = true;
|
||||||
|
wm-restack = "i3";
|
||||||
|
override-redirect = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"module/xworkspaces" = {
|
||||||
|
type = "internal/xworkspaces";
|
||||||
|
label-active = "";
|
||||||
|
label-active-padding = 1;
|
||||||
|
label-occupied = "";
|
||||||
|
label-occupied-padding = 1;
|
||||||
|
label-urgent = "";
|
||||||
|
label-urgent-foreground = "\${colors.alert}";
|
||||||
|
label-urgent-padding = 1;
|
||||||
|
label-empty = "";
|
||||||
|
label-empty-foreground = "\${colors.disabled}";
|
||||||
|
label-empty-padding = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
"module/xwindow" = {
|
||||||
|
type = "internal/xwindow";
|
||||||
|
label = "%title:0:60:...%";
|
||||||
|
};
|
||||||
|
|
||||||
|
"module/memory" = {
|
||||||
|
type = "internal/memory";
|
||||||
|
interval = 2;
|
||||||
|
format-prefix = " ";
|
||||||
|
format-prefix-foreground = "\${colors.primary}";
|
||||||
|
label = "%percentage_used:2%%";
|
||||||
|
};
|
||||||
|
|
||||||
|
"module/cpu" = {
|
||||||
|
type = "internal/cpu";
|
||||||
|
interval = "2";
|
||||||
|
format-prefix = " ";
|
||||||
|
format-prefix-foreground = "\${colors.primary}";
|
||||||
|
label = "%percentage:2%%";
|
||||||
|
};
|
||||||
|
|
||||||
|
"network-base" = {
|
||||||
|
type = "internal/network";
|
||||||
|
interval = 5;
|
||||||
|
format-connected = "<label-connected>";
|
||||||
|
format-disconnected = "<label-disconnected>";
|
||||||
|
label-disconnected = "%{F#F0C674}%ifname%%{F#707880} disconnected";
|
||||||
|
};
|
||||||
|
|
||||||
|
"module/wlan" = {
|
||||||
|
"inherit" = "network-base";
|
||||||
|
interface-type = "wireless";
|
||||||
|
label-connected = "%{F#F0C674}%ifname%%{F-} %essid% %local_ip%";
|
||||||
|
};
|
||||||
|
|
||||||
|
"module/battery" = {
|
||||||
|
type = "internal/battery";
|
||||||
|
poll-interval = 1;
|
||||||
|
full-at = 96;
|
||||||
|
battery = "BAT0";
|
||||||
|
adapter = "ADP1";
|
||||||
|
time-format = "%H:%M";
|
||||||
|
label-charging = "%percentage%% %time%";
|
||||||
|
format-charging = "<ramp-capacity> ﮣ <label-charging>";
|
||||||
|
label-discharging = "%percentage%% %time%";
|
||||||
|
format-discharging = "<ramp-capacity> <label-discharging>";
|
||||||
|
label-full = "%percentage%%";
|
||||||
|
format-full = " <label-full>";
|
||||||
|
label-low = "%percentage%%";
|
||||||
|
format-low = " <label-low>";
|
||||||
|
ramp.capacity = [ "" "" "" "" "" "" "" "" "" "" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"module/date" = {
|
||||||
|
type = "internal/date";
|
||||||
|
interval = 1;
|
||||||
|
date = "%Y-%m-%d %H:%M:%S";
|
||||||
|
label = "%date%";
|
||||||
|
label-foreground = "\${colors.foreground}";
|
||||||
|
};
|
||||||
|
|
||||||
|
"settings" = {
|
||||||
|
screenchange-reload = true;
|
||||||
|
pseudo-transparency = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
16
modules/desktop/social.nix
Normal file
16
modules/desktop/social.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let cfg = config.jade.desktop.social;
|
||||||
|
in with lib; {
|
||||||
|
options.jade.desktop.social = {
|
||||||
|
enable = mkEnableOption "Enable social apps";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
programs.nheko.enable = true;
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
evolutionWithPlugins
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
0
modules/desktop/specific-hardware/default.nix
Normal file
0
modules/desktop/specific-hardware/default.nix
Normal file
0
modules/desktop/specific-hardware/spacenav.nix
Normal file
0
modules/desktop/specific-hardware/spacenav.nix
Normal file
0
modules/desktop/specific-hardware/uhk.nix
Normal file
0
modules/desktop/specific-hardware/uhk.nix
Normal file
0
modules/desktop/specific-hardware/wacom.nix
Normal file
0
modules/desktop/specific-hardware/wacom.nix
Normal file
16
modules/desktop/syncthing.nix
Normal file
16
modules/desktop/syncthing.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let cfg = config.jade.desktop.syncthing;
|
||||||
|
in with lib; {
|
||||||
|
options.jade.desktop.syncthing = {
|
||||||
|
enable = mkEnableOption "Enable syncing via syncthing";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.syncthing = rec {
|
||||||
|
enable = true;
|
||||||
|
user = "jade";
|
||||||
|
dataDir = "/home/${user}/Documents";
|
||||||
|
configDir = "/home/${user}/Documents/.config/syncthing";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
38
modules/desktop/themeing.nix
Normal file
38
modules/desktop/themeing.nix
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
config = {
|
||||||
|
fonts.fonts = with pkgs; [
|
||||||
|
atkinson-hyperlegible
|
||||||
|
];
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gtk-engine-murrine
|
||||||
|
#gruvbox-dark-gtk
|
||||||
|
#gruvbox-dark-icons-gtk
|
||||||
|
];
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
cursorTheme = {
|
||||||
|
package = pkgs.phinger-cursors;
|
||||||
|
name = "phinger-cursors";
|
||||||
|
size = 30;
|
||||||
|
};
|
||||||
|
font = {
|
||||||
|
package = pkgs.atkinson-hyperlegible;
|
||||||
|
name = "Atkinson Hyperlegible";
|
||||||
|
size = 11.5;
|
||||||
|
};
|
||||||
|
iconTheme = {
|
||||||
|
package = pkgs.gruvbox-dark-icons-gtk;
|
||||||
|
name = "gruvbox-dark-icons";
|
||||||
|
};
|
||||||
|
theme = {
|
||||||
|
package = pkgs.gruvbox-dark-gtk;
|
||||||
|
name = "gruvbox-dark";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
qt.platformTheme = "gtk";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
26
modules/desktop/xkeysnail.nix
Normal file
26
modules/desktop/xkeysnail.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
config = {
|
||||||
|
services.xserver.windowManager.i3.extraPackages = with pkgs; [
|
||||||
|
xkeysnail
|
||||||
|
xorg.xhost
|
||||||
|
xorg.setxkbmap
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.users.jade = { pkgs, ... }: {
|
||||||
|
xsession.windowManager.i3.config.startup = [
|
||||||
|
{
|
||||||
|
command = "xhost +";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "${pkgs.xkeysnail} ${../../other/xkeysnail.py}";
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "sleep 4 && setxkbmap -layout us -variant altgr-intl";
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -6,7 +6,11 @@ in with lib; {
|
||||||
enable = mkEnableOption "Enable Kitty";
|
enable = mkEnableOption "Enable Kitty";
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
environment.sessionVariables = rec {
|
||||||
|
TERMINAL = "kitty";
|
||||||
|
};
|
||||||
home-manager.users.jade = { pkgs,... } : {
|
home-manager.users.jade = { pkgs,... } : {
|
||||||
|
xsession.windowManager.i3.config.terminal = "kitty";
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font = {
|
font = {
|
||||||
|
|
|
@ -43,7 +43,6 @@
|
||||||
# missing: menu-qalc picom-jonaburg
|
# missing: menu-qalc picom-jonaburg
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# TODO: clean up.
|
# TODO: clean up.
|
||||||
prismlauncher
|
|
||||||
nvtop-amd
|
nvtop-amd
|
||||||
libGL
|
libGL
|
||||||
];
|
];
|
||||||
|
|
|
@ -30,8 +30,15 @@
|
||||||
|
|
||||||
jade = {
|
jade = {
|
||||||
flatpak.enable = true;
|
flatpak.enable = true;
|
||||||
desktop.enable = true;
|
desktop = {
|
||||||
desktop.compositing = true;
|
enable = true;
|
||||||
|
compositing.enable = true;
|
||||||
|
creative.enable = true;
|
||||||
|
syncthing.enable = true;
|
||||||
|
kdeconnect.enable = true;
|
||||||
|
cloud.enable = true;
|
||||||
|
social.enable = true;
|
||||||
|
};
|
||||||
terminal.enable = true;
|
terminal.enable = true;
|
||||||
neovim.enable = true;
|
neovim.enable = true;
|
||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
|
|
Loading…
Reference in a new issue