moves home-manager to hostname specific configs
This commit is contained in:
66
config/home-manager/workstation/dconf.nix
Normal file
66
config/home-manager/workstation/dconf.nix
Normal file
@ -0,0 +1,66 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# GTK Theme
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
|
||||
theme = {
|
||||
name = "Yaru-purple-dark";
|
||||
package = pkgs.yaru-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
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
};
|
||||
|
||||
# Pinned apps
|
||||
# add more by listing them with `gsettings list-recursively | grep favorite-apps`
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = [
|
||||
"io.github.zen_browser.zen.desktop"
|
||||
"code.desktop"
|
||||
"org.telegram.desktop.desktop"
|
||||
"spotify.desktop"
|
||||
"vesktop.desktop"
|
||||
"kitty.desktop"
|
||||
"org.gnome.Geary.desktop"
|
||||
];
|
||||
};
|
||||
|
||||
# Set wallpaper
|
||||
"org/gnome/desktop/background" = {
|
||||
picture-uri-dark = "file:///${config.home.homeDirectory}/dotfiles/secrets/wp/9.png";
|
||||
picture-uri = "file:///${config.home.homeDirectory}/dotfiles/secrets/wp/9.png";
|
||||
picture-options = "zoom";
|
||||
primary-color = "#000000";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
93
config/home-manager/workstation/default-apps.nix
Normal file
93
config/home-manager/workstation/default-apps.nix
Normal file
@ -0,0 +1,93 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# Default applications
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
# Zen Browser
|
||||
"application/xhtml+xml" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"text/html" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"x-scheme-handler/http" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"x-scheme-handler/https" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
|
||||
# Geary
|
||||
"x-scheme-handler/mailto" = [ "org.gnome.Geary.desktop" ];
|
||||
|
||||
# Loupe (Image Viewer)
|
||||
"image/jpeg" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/png" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/gif" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/webp" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/tiff" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-tga" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd-ms.dds" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-dds" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/bmp" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd.microsoft.icon" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd.radiance" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-exr" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-bitmap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-graymap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-pixmap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-anymap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-qoi" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/svg+xml" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/svg+xml-compressed" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/avif" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/heic" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/jxl" = [ "org.gnome.Loupe.desktop" ];
|
||||
|
||||
# VLC (Video Player)
|
||||
"video/x-ogm+ogg" = [ "vlc.desktop" ];
|
||||
"video/3gp" = [ "vlc.desktop" ];
|
||||
"video/3gpp" = [ "vlc.desktop" ];
|
||||
"video/3gpp2" = [ "vlc.desktop" ];
|
||||
"video/dv" = [ "vlc.desktop" ];
|
||||
"video/divx" = [ "vlc.desktop" ];
|
||||
"video/fli" = [ "vlc.desktop" ];
|
||||
"video/flv" = [ "vlc.desktop" ];
|
||||
"video/mp2t" = [ "vlc.desktop" ];
|
||||
"video/mp4" = [ "vlc.desktop" ];
|
||||
"video/mp4v-es" = [ "vlc.desktop" ];
|
||||
"video/mpeg" = [ "vlc.desktop" ];
|
||||
"video/mpeg-system" = [ "vlc.desktop" ];
|
||||
"video/msvideo" = [ "vlc.desktop" ];
|
||||
"video/ogg" = [ "vlc.desktop" ];
|
||||
"video/quicktime" = [ "vlc.desktop" ];
|
||||
"video/vnd.divx" = [ "vlc.desktop" ];
|
||||
"video/vnd.mpegurl" = [ "vlc.desktop" ];
|
||||
"video/vnd.rn-realvideo" = [ "vlc.desktop" ];
|
||||
"video/webm" = [ "vlc.desktop" ];
|
||||
"video/x-anim" = [ "vlc.desktop" ];
|
||||
"video/x-avi" = [ "vlc.desktop" ];
|
||||
"video/x-flc" = [ "vlc.desktop" ];
|
||||
"video/x-fli" = [ "vlc.desktop" ];
|
||||
"video/x-flv" = [ "vlc.desktop" ];
|
||||
"video/x-m4v" = [ "vlc.desktop" ];
|
||||
"video/x-matroska" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg2" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asf" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asf-plugin" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asx" = [ "vlc.desktop" ];
|
||||
"video/x-msvideo" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wm" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wmv" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wmx" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wvx" = [ "vlc.desktop" ];
|
||||
"video/x-nsv" = [ "vlc.desktop" ];
|
||||
"video/x-theora" = [ "vlc.desktop" ];
|
||||
"video/x-theora+ogg" = [ "vlc.desktop" ];
|
||||
"video/x-ogm" = [ "vlc.desktop" ];
|
||||
"video/avi" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg-system" = [ "vlc.desktop" ];
|
||||
|
||||
# Totem (for those few formats that default to it)
|
||||
"video/vivo" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/vnd.vivo" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-flic" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-mjpeg" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-totem-stream" = [ "org.gnome.Totem.desktop" ];
|
||||
};
|
||||
};
|
||||
}
|
12
config/home-manager/workstation/default.nix
Normal file
12
config/home-manager/workstation/default.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||
|
||||
# Import all other .nix files as modules
|
||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
||||
in
|
||||
{
|
||||
# Import all the package modules
|
||||
imports = moduleFiles;
|
||||
}
|
15
config/home-manager/workstation/fonts.nix
Normal file
15
config/home-manager/workstation/fonts.nix
Normal file
@ -0,0 +1,15 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
fonts.fontconfig.enable = true;
|
||||
home.packages = [
|
||||
(pkgs.nerdfonts.override {
|
||||
fonts = [
|
||||
"Hack"
|
||||
"FiraCode"
|
||||
"Meslo"
|
||||
"FiraCode"
|
||||
"DroidSansMono"
|
||||
];
|
||||
})
|
||||
];
|
||||
}
|
254
config/home-manager/workstation/gnome-extensions.nix
Normal file
254
config/home-manager/workstation/gnome-extensions.nix
Normal file
@ -0,0 +1,254 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs.gnomeExtensions; [
|
||||
tailscale-qs
|
||||
gsconnect
|
||||
blur-my-shell
|
||||
weather-oclock
|
||||
space-bar
|
||||
gtk4-desktop-icons-ng-ding
|
||||
logo-menu
|
||||
media-controls
|
||||
burn-my-windows
|
||||
coverflow-alt-tab
|
||||
dash-to-dock
|
||||
appindicator
|
||||
user-themes
|
||||
autohide-battery
|
||||
battery-health-charging
|
||||
just-perfection
|
||||
pano
|
||||
];
|
||||
|
||||
# Copy burn-my-windows profile to user config
|
||||
home.file.".config/burn-my-windows/profiles/default.conf".text = ''
|
||||
[burn-my-windows-profile]
|
||||
fire-enable-effect=false
|
||||
tv-glitch-enable-effect=true
|
||||
tv-glitch-animation-time=250
|
||||
'';
|
||||
|
||||
dconf = {
|
||||
settings = {
|
||||
# To get an ID of an extension, run `gnome-extensions list`
|
||||
"org/gnome/shell" = {
|
||||
disable-user-extensions = false;
|
||||
enabled-extensions = [
|
||||
"tilingshell@ferrarodomenico.com"
|
||||
"gsconnect@andyholmes.github.io"
|
||||
"blur-my-shell@aunetx"
|
||||
"tailscale@joaophi.github.com"
|
||||
"easy_docker_containers@red.software.systems"
|
||||
"weatheroclock@CleoMenezesJr.github.io"
|
||||
"space-bar@luchrioh"
|
||||
"gtk4-ding@smedius.gitlab.com"
|
||||
"logomenu@aryan_k"
|
||||
"mediacontrols@cliffniff.github.com"
|
||||
"burn-my-windows@schneegans.github.com"
|
||||
"CoverflowAltTab@palatis.blogspot.com"
|
||||
"dash-to-dock@micxgx.gmail.com"
|
||||
"gnome-shell-extension-appindicator"
|
||||
"appindicatorsupport@rgcjonas.gmail.com"
|
||||
"user-theme@gnome-shell-extensions.gcampax.github.com"
|
||||
"autohide-battery@sitnik.ru"
|
||||
"just-perfection-desktop@just-perfection"
|
||||
];
|
||||
};
|
||||
|
||||
# Perfection settings
|
||||
"org/gnome/shell/extensions/just-perfection" = {
|
||||
theme = false;
|
||||
notification-banner-position = 2;
|
||||
startup-status = 0;
|
||||
};
|
||||
|
||||
# Autohide battery
|
||||
"org/gnome/shell/extensions/autohide-battery" = {
|
||||
hide-on = 95;
|
||||
};
|
||||
|
||||
# Configure dash-to-dock
|
||||
"org/gnome/shell/extensions/dash-to-dock" = {
|
||||
apply-custom-theme = false;
|
||||
apply-glossy-effect = false;
|
||||
autohide-in-fullscreen = true;
|
||||
background-opacity = 0.8;
|
||||
custom-theme-customize-running-dots = false;
|
||||
custom-theme-running-dots-border-color = "rgb(255,255,255)";
|
||||
custom-theme-running-dots-color = "rgb(255,255,255)";
|
||||
dash-max-icon-size = 48;
|
||||
dock-fixed = false;
|
||||
dock-position = "BOTTOM";
|
||||
extend-height = 0;
|
||||
height-fraction = 0.9;
|
||||
intellihide = true;
|
||||
intellihide-mode = "ALL_WINDOWS";
|
||||
multi-monitor = true;
|
||||
preferred-monitor = -2;
|
||||
preferred-monitor-by-connector = "DP-2";
|
||||
running-indicator-dominant-color = true;
|
||||
running-indicator-style = "DOTS";
|
||||
show-apps-at-top = true;
|
||||
show-favorites = true;
|
||||
show-mounts = false;
|
||||
show-trash = true;
|
||||
transparency = 0.75;
|
||||
transparency-mode = "FIXED";
|
||||
unity-backlit-items = false;
|
||||
};
|
||||
|
||||
# Configure logo-menu
|
||||
"org/gnome/shell/extensions/Logo-menu" = {
|
||||
hide-icon-shadow = false;
|
||||
menu-button-extensions-app = "org.gnome.Extensions.desktop";
|
||||
menu-button-icon-image = 23;
|
||||
menu-button-icon-size = 24;
|
||||
menu-button-system-monitor = "missioncenter";
|
||||
menu-button-terminal = "kitty";
|
||||
show-power-options = false;
|
||||
symbolic-icon = true;
|
||||
use-custom-icon = false;
|
||||
};
|
||||
|
||||
# Configure covereflow-alt-tab
|
||||
"org/gnome/shell/extensions/coverflowalttab" = {
|
||||
animation-time = 0.2;
|
||||
easing-function = "ease-out-quart";
|
||||
icon-has-shadow = true;
|
||||
icon-style = "Overlay";
|
||||
invert-swipes = false;
|
||||
position = "Top";
|
||||
switcher-looping-method = "Flip Stack";
|
||||
switcher-style = "Coverflow";
|
||||
};
|
||||
|
||||
# Configure burn-my-windows
|
||||
"org/gnome/shell/extensions/burn-my-windows" = {
|
||||
active-profile = "${config.home.homeDirectory}/.config/burn-my-windows/profiles/default.conf";
|
||||
};
|
||||
|
||||
# Configure blur-my-shell
|
||||
"org/gnome/shell/extensions/blur-my-shell" = {
|
||||
brightness = 0.75;
|
||||
noise-amount = 0;
|
||||
};
|
||||
|
||||
# Configure tiling shell
|
||||
"org/gnome/shell/extensions/tilingshell" = {
|
||||
layouts-json = ''
|
||||
[
|
||||
{
|
||||
"id": "Layout 1",
|
||||
"tiles": [
|
||||
{ "x": 0, "y": 0, "width": 0.22, "height": 0.5, "groups": [1, 2] },
|
||||
{ "x": 0, "y": 0.5, "width": 0.22, "height": 0.5, "groups": [1, 2] },
|
||||
{ "x": 0.22, "y": 0, "width": 0.56, "height": 1, "groups": [2, 3] },
|
||||
{ "x": 0.78, "y": 0, "width": 0.22, "height": 0.5, "groups": [3, 4] },
|
||||
{ "x": 0.78, "y": 0.5, "width": 0.22, "height": 0.5, "groups": [3, 4] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Layout 2",
|
||||
"tiles": [
|
||||
{ "x": 0, "y": 0, "width": 0.22, "height": 1, "groups": [1] },
|
||||
{ "x": 0.22, "y": 0, "width": 0.56, "height": 1, "groups": [1, 2] },
|
||||
{ "x": 0.78, "y": 0, "width": 0.22, "height": 1, "groups": [2] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Layout 3",
|
||||
"tiles": [
|
||||
{ "x": 0, "y": 0, "width": 0.33, "height": 1, "groups": [1] },
|
||||
{ "x": 0.33, "y": 0, "width": 0.67, "height": 1, "groups": [1] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Layout 4",
|
||||
"tiles": [
|
||||
{ "x": 0, "y": 0, "width": 0.67, "height": 1, "groups": [1] },
|
||||
{ "x": 0.67, "y": 0, "width": 0.33, "height": 1, "groups": [1] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Portrait Layout",
|
||||
"tiles": [
|
||||
{ "x": 0, "y": 0, "width": 1, "height": 0.25, "groups": [1] },
|
||||
{ "x": 0, "y": 0.25, "width": 1, "height": 0.5, "groups": [1, 2] },
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0.75,
|
||||
"width": 0.50,
|
||||
"height": 0.25,
|
||||
"groups": [2, 3]
|
||||
},
|
||||
{
|
||||
"x": 0.50,
|
||||
"y": 0.75,
|
||||
"width": 0.50,
|
||||
"height": 0.25,
|
||||
"groups": [2, 3]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
'';
|
||||
overridden-settings = "{\"org.gnome.mutter.keybindings\":{\"toggle-tiled-right\":\"['<Super>Right']\",\"toggle-tiled-left\":\"['<Super>Left']\"},\"org.gnome.desktop.wm.keybindings\":{\"maximize\":\"['<Super>Up']\",\"unmaximize\":\"['<Super>Down', '<Alt>F5']\"},\"org.gnome.mutter\":{\"edge-tiling\":\"false\"}}";
|
||||
};
|
||||
|
||||
# Configure forge
|
||||
"org/gnome/shell/extensions/forge" = {
|
||||
move-pointer-focus-enabled = false;
|
||||
stacked-tiling-mode-enabled = true;
|
||||
tabbed-tiling-mode-enabled = true;
|
||||
tiling-mode-enabled = true;
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/forge/keybindings" = {
|
||||
con-split-horizontal = [ "<Super>z" ];
|
||||
con-split-layout-toggle = [ "<Super>g" ];
|
||||
con-split-vertical = [ "<Super>v" ];
|
||||
con-stacked-layout-toggle = [ "<Shift><Super>s" ];
|
||||
con-tabbed-layout-toggle = [ "<Shift><Super>t" ];
|
||||
con-tabbed-showtab-decoration-toggle = [ "<Control><Alt>y" ];
|
||||
focus-border-toggle = [ "<Super>x" ];
|
||||
prefs-tiling-toggle = [ "<Super>w" ];
|
||||
window-focus-down = [ "<Super>j" ];
|
||||
window-focus-left = [ "<Super>h" ];
|
||||
window-focus-right = [ "<Super>l" ];
|
||||
window-focus-up = [ "<Super>k" ];
|
||||
window-gap-size-decrease = [ "<Control><Super>minus" ];
|
||||
window-gap-size-increase = [ "<Control><Super>plus" ];
|
||||
window-move-down = [ "<Shift><Super>j" ];
|
||||
window-move-left = [ "<Shift><Super>h" ];
|
||||
window-move-right = [ "<Shift><Super>l" ];
|
||||
window-move-up = [ "<Shift><Super>k" ];
|
||||
window-resize-bottom-decrease = [ "<Shift><Control><Super>i" ];
|
||||
window-resize-bottom-increase = [ "<Control><Super>u" ];
|
||||
window-resize-left-decrease = [ "<Shift><Control><Super>o" ];
|
||||
window-resize-left-increase = [ "<Control><Super>y" ];
|
||||
window-resize-right-decrease = [ "<Shift><Control><Super>y" ];
|
||||
window-resize-right-increase = [ "<Control><Super>o" ];
|
||||
window-resize-top-decrease = [ "<Shift><Control><Super>u" ];
|
||||
window-resize-top-increase = [ "<Control><Super>i" ];
|
||||
window-snap-center = [ "<Control><Alt>c" ];
|
||||
window-snap-one-third-left = [ "<Control><Alt>d" ];
|
||||
window-snap-one-third-right = [ "<Control><Alt>g" ];
|
||||
window-snap-two-third-left = [ "<Control><Alt>e" ];
|
||||
window-snap-two-third-right = [ ];
|
||||
window-swap-down = [ "<Control><Super>j" ];
|
||||
window-swap-last-active = [ "<Super>Return" ];
|
||||
window-swap-left = [ "<Control><Super>h" ];
|
||||
window-swap-right = [ "<Control><Super>l" ];
|
||||
window-swap-up = [ "<Control><Super>k" ];
|
||||
window-toggle-always-float = [ "<Shift><Super>c" ];
|
||||
window-toggle-float = [ "<Super>c" ];
|
||||
workspace-active-tile-toggle = [ "<Shift><Super>w" ];
|
||||
};
|
||||
|
||||
# User theme
|
||||
"org/gnome/shell/extensions/user-theme" = {
|
||||
name = "Yaru-purple-dark";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
34
config/home-manager/workstation/keyboard-shortcuts.nix
Normal file
34
config/home-manager/workstation/keyboard-shortcuts.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
dconf.settings = {
|
||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||
custom-keybindings = [
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal/"
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/1password-quick-access/"
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/screenshot/"
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/missioncenter/"
|
||||
];
|
||||
};
|
||||
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = {
|
||||
binding = "<Primary><Alt>t";
|
||||
command = "kitty";
|
||||
name = "open-terminal";
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/1password-quick-access" = {
|
||||
binding = "<Ctrl><Alt>space";
|
||||
command = "1password --quick-access";
|
||||
name = "1password-quick-access";
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/screenshot" = {
|
||||
binding = "<Shift><Alt>4";
|
||||
command = "flameshot gui";
|
||||
name = "screenshot";
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/missioncenter" = {
|
||||
binding = "<Ctrl><Shift>Escape";
|
||||
command = "missioncenter";
|
||||
name = "missioncenter";
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user