mirror of
https://github.com/youwen5/nixos.git
synced 2024-11-28 11:43:51 -08:00
refactor: engage super ultra abstraction for multi-architecture
temp temp
This commit is contained in:
parent
cde45f87fd
commit
098cbdd9f1
26 changed files with 356 additions and 332 deletions
19
flake.nix
19
flake.nix
|
@ -84,17 +84,13 @@
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/callisto
|
./hosts/callisto
|
||||||
# ./modules/nixos/gaming.nix
|
./modules/nixos/audio
|
||||||
./modules/nixos/audio.nix
|
./modules/nixos/networking
|
||||||
./modules/nixos/networking.nix
|
./modules/common/fonts
|
||||||
./modules/common/fonts.nix
|
|
||||||
|
|
||||||
apple-silicon.nixosModules.apple-silicon-support
|
apple-silicon.nixosModules.apple-silicon-support
|
||||||
|
|
||||||
catppuccin.nixosModules.catppuccin
|
catppuccin.nixosModules.catppuccin
|
||||||
|
|
||||||
lix-module.nixosModules.default
|
lix-module.nixosModules.default
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
|
@ -102,11 +98,10 @@
|
||||||
home-manager.backupFileExtension = "backup";
|
home-manager.backupFileExtension = "backup";
|
||||||
home-manager.users.youwen = {
|
home-manager.users.youwen = {
|
||||||
imports = [
|
imports = [
|
||||||
./users/youwen/linux/linux-home.nix
|
./users/youwen/common
|
||||||
./users/youwen/linux/desktop.nix
|
./users/youwen/linux/laptop
|
||||||
./users/youwen/linux/programs.nix
|
./users/youwen/linux/packages/aarch-64
|
||||||
./users/youwen/common/core.nix
|
|
||||||
./users/youwen/linux/catppuccin.nix
|
|
||||||
inputs.catppuccin.homeManagerModules.catppuccin
|
inputs.catppuccin.homeManagerModules.catppuccin
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
3
users/youwen/common/default.nix
Normal file
3
users/youwen/common/default.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
imports = [ ./core.nix ];
|
||||||
|
}
|
24
users/youwen/linux/common-desktop-environment.nix
Executable file
24
users/youwen/linux/common-desktop-environment.nix
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
# Audio effects and EQ tool
|
||||||
|
services.easyeffects.enable = true;
|
||||||
|
services.easyeffects.package = pkgs.easyeffects;
|
||||||
|
|
||||||
|
# Notification daemon
|
||||||
|
services.dunst = {
|
||||||
|
enable = true;
|
||||||
|
catppuccin.enable = true;
|
||||||
|
iconTheme = {
|
||||||
|
name = "Papirus-Dark";
|
||||||
|
package = pkgs.papirus-icon-theme;
|
||||||
|
size = "32x32";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Currently non-functional
|
||||||
|
programs.wlogout.enable = true;
|
||||||
|
programs.rofi = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.rofi-wayland;
|
||||||
|
theme = "gruvbox-dark";
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,55 +0,0 @@
|
||||||
{ pkgs, ... }: {
|
|
||||||
wayland.windowManager.hyprland = import ./hyprland-conf.nix;
|
|
||||||
|
|
||||||
# Audio effects and EQ tool
|
|
||||||
services.easyeffects.enable = true;
|
|
||||||
services.easyeffects.package = pkgs.easyeffects;
|
|
||||||
|
|
||||||
# Notification daemon
|
|
||||||
services.dunst = {
|
|
||||||
enable = true;
|
|
||||||
catppuccin.enable = true;
|
|
||||||
iconTheme = {
|
|
||||||
name = "Papirus-Dark";
|
|
||||||
package = pkgs.papirus-icon-theme;
|
|
||||||
size = "32x32";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Currently non-functional
|
|
||||||
programs.wlogout.enable = true;
|
|
||||||
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
catppuccin.enable = true;
|
|
||||||
cursorTheme = {
|
|
||||||
name = "Bibata-Modern-Ice";
|
|
||||||
size = 26;
|
|
||||||
};
|
|
||||||
iconTheme = { name = "Papirus-Dark"; };
|
|
||||||
};
|
|
||||||
|
|
||||||
qt = {
|
|
||||||
enable = true;
|
|
||||||
platformTheme.name = "qtct";
|
|
||||||
style.name = "kvantum";
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile = {
|
|
||||||
"Kvantum/kvantum.kvconfig".text = ''
|
|
||||||
[General]
|
|
||||||
theme=GraphiteNordDark
|
|
||||||
'';
|
|
||||||
|
|
||||||
"Kvantum/GraphiteNord".source =
|
|
||||||
"${pkgs.graphite-kde-theme}/share/Kvantum/GraphiteNord";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.rofi = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.rofi-wayland;
|
|
||||||
theme = "gruvbox-dark";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.waybar = import ./waybar/waybar-conf.nix;
|
|
||||||
}
|
|
4
users/youwen/linux/desktop/default.nix
Normal file
4
users/youwen/linux/desktop/default.nix
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
imports = [ ../theming ../home.nix ../programs ../hyprland/desktop ../common-desktop-environment.nix ];
|
||||||
|
}
|
||||||
|
|
|
@ -25,63 +25,6 @@
|
||||||
source = ../../../wallpapers;
|
source = ../../../wallpapers;
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Packages that should be installed to the user profile.
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
neofetch
|
|
||||||
|
|
||||||
# archives
|
|
||||||
zip
|
|
||||||
xz
|
|
||||||
unzip
|
|
||||||
p7zip
|
|
||||||
|
|
||||||
# utils
|
|
||||||
nurl # helps fetch git data for nixpkgs
|
|
||||||
|
|
||||||
# nix related
|
|
||||||
#
|
|
||||||
# it provides the command `nom` works just like `nix`
|
|
||||||
# with more details log output
|
|
||||||
nix-output-monitor
|
|
||||||
|
|
||||||
# system tools
|
|
||||||
pciutils # lspci
|
|
||||||
usbutils # lsusb
|
|
||||||
|
|
||||||
# desktop utils
|
|
||||||
wl-clipboard
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
swappy
|
|
||||||
pavucontrol
|
|
||||||
swww
|
|
||||||
waypaper
|
|
||||||
|
|
||||||
# desktop apps
|
|
||||||
dolphin
|
|
||||||
# bitwarden-desktop
|
|
||||||
thunderbird
|
|
||||||
# spotify
|
|
||||||
vesktop
|
|
||||||
signal-desktop
|
|
||||||
# modrinth-app
|
|
||||||
# lutris
|
|
||||||
# wine
|
|
||||||
|
|
||||||
# dev tools
|
|
||||||
nodePackages_latest.pnpm
|
|
||||||
rustfmt
|
|
||||||
rust-analyzer
|
|
||||||
|
|
||||||
# desktop ricing
|
|
||||||
bibata-cursors
|
|
||||||
libsForQt5.qtstyleplugin-kvantum
|
|
||||||
libsForQt5.qt5ct
|
|
||||||
papirus-icon-theme
|
|
||||||
libsForQt5.qt5ct
|
|
||||||
];
|
|
||||||
|
|
||||||
# This value determines the home Manager release that your
|
# This value determines the home Manager release that your
|
||||||
# configuration is compatible with. This helps avoid breakage
|
# configuration is compatible with. This helps avoid breakage
|
||||||
# when a new home Manager release introduces backwards
|
# when a new home Manager release introduces backwards
|
|
@ -1,208 +0,0 @@
|
||||||
{
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
exec-once = [ "waypaper --restore" ];
|
|
||||||
"$mod" = "SUPER";
|
|
||||||
"$Left" = "Y";
|
|
||||||
"$Right" = "O";
|
|
||||||
"$Up" = "I";
|
|
||||||
"$Down" = "U";
|
|
||||||
env = [
|
|
||||||
"HYPRCURSOR_THEME,Bibata-Modern-Ice"
|
|
||||||
"HYPRCURSOR_SIZE,26"
|
|
||||||
"XCURSOR_THEME,Bibata-Modern-Ice"
|
|
||||||
"XCURSOR_SIZE,26"
|
|
||||||
];
|
|
||||||
bind = [
|
|
||||||
# Application Keybinds
|
|
||||||
"$mod, F, exec, librewolf"
|
|
||||||
"$mod, T, exec, kitty"
|
|
||||||
"$mod, E, exec, dolphin"
|
|
||||||
"$mod, R, exec, pavucontrol"
|
|
||||||
|
|
||||||
# Window actions
|
|
||||||
"$mod, Q, killactive"
|
|
||||||
"$mod, W, togglefloating"
|
|
||||||
"$mod, J, togglesplit"
|
|
||||||
"$mod, Return, fullscreen"
|
|
||||||
|
|
||||||
# Move around
|
|
||||||
"$mod, $Left, movefocus, l"
|
|
||||||
"$mod, $Right, movefocus, r"
|
|
||||||
"$mod, $Up, movefocus, u"
|
|
||||||
"$mod, $Down, movefocus, d"
|
|
||||||
|
|
||||||
"$mod, 1, workspace, 1"
|
|
||||||
"$mod, 2, workspace, 2"
|
|
||||||
"$mod, 3, workspace, 3"
|
|
||||||
"$mod, 4, workspace, 4"
|
|
||||||
"$mod, 5, workspace, 5"
|
|
||||||
"$mod, 6, workspace, 6"
|
|
||||||
"$mod, 7, workspace, 7"
|
|
||||||
"$mod, 8, workspace, 8"
|
|
||||||
"$mod, 9, workspace, 9"
|
|
||||||
"$mod, 0, workspace, 10"
|
|
||||||
|
|
||||||
"$mod, S, togglespecialworkspace"
|
|
||||||
|
|
||||||
# Move windows around
|
|
||||||
"$mod+Shift+Ctrl, $Left, movewindow, l"
|
|
||||||
"$mod+Shift+Ctrl, $Right, movewindow, r"
|
|
||||||
"$mod+Shift+Ctrl, $Up, movewindow, u"
|
|
||||||
"$mod+Shift+Ctrl, $Down, movewindow, d"
|
|
||||||
|
|
||||||
"$mod+Ctrl+Alt, $Right, movetoworkspace, r+1"
|
|
||||||
"$mod+Ctrl+Alt, $Left, movetoworkspace, r-1"
|
|
||||||
|
|
||||||
"$mod+Ctrl, $Right, workspace, r+1"
|
|
||||||
"$mod+Ctrl, $Left, workspace, r-1"
|
|
||||||
|
|
||||||
"$mod+Alt, S, movetoworkspacesilent, special"
|
|
||||||
|
|
||||||
# Utilities
|
|
||||||
"$mod, Space, exec, pkill -x rofi || rofi -show drun" # Run rofi
|
|
||||||
|
|
||||||
''$mod, P, exec, grim -g "$(slurp)" - | swappy -f -'' # Screenshot
|
|
||||||
|
|
||||||
"$mod, Backspace, exec, wlogout" # Screenshot
|
|
||||||
];
|
|
||||||
bindm = [
|
|
||||||
"$mod, mouse:272, movewindow"
|
|
||||||
"$mod, mouse:273, resizewindow"
|
|
||||||
"$mod, Z, movewindow"
|
|
||||||
"$mod, X, resizewindow"
|
|
||||||
];
|
|
||||||
windowrulev2 = [
|
|
||||||
"opacity 0.90 0.90,class:^(librewolf)$"
|
|
||||||
"opacity 0.90 0.90,class:^(Brave-browser)$"
|
|
||||||
"opacity 0.80 0.80,class:^(Steam)$"
|
|
||||||
"opacity 0.80 0.80,class:^(steam)$"
|
|
||||||
"opacity 0.80 0.80,class:^(steamwebhelper)$"
|
|
||||||
"opacity 0.80 0.80,class:^(Spotify)$"
|
|
||||||
"opacity 0.80 0.80,initialTitle:^(Spotify Premium)$"
|
|
||||||
"opacity 0.80 0.80,initialTitle:^(Spotify Free)$"
|
|
||||||
"opacity 0.80 0.80,class:^(code-oss)$"
|
|
||||||
"opacity 0.80 0.80,class:^(Code)$"
|
|
||||||
"opacity 0.80 0.80,class:^(code-url-handler)$"
|
|
||||||
"opacity 0.80 0.80,class:^(code-insiders-url-handler)$"
|
|
||||||
"opacity 0.80 0.80,class:^(kitty)$"
|
|
||||||
"opacity 0.80 0.80,class:^(org.kde.dolphin)$"
|
|
||||||
"opacity 0.80 0.80,class:^(org.kde.ark)$"
|
|
||||||
"opacity 0.80 0.80,class:^(nwg-look)$"
|
|
||||||
"opacity 0.80 0.80,class:^(qt5ct)$"
|
|
||||||
"opacity 0.80 0.80,class:^(qt6ct)$"
|
|
||||||
"opacity 0.80 0.80,class:^(kvantummanager)$"
|
|
||||||
|
|
||||||
"opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk"
|
|
||||||
"opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk"
|
|
||||||
"opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ # Cartridges-Gtk"
|
|
||||||
"opacity 0.80 0.80,class:^(com.obsproject.Studio)$ # Obs-Qt"
|
|
||||||
"opacity 0.80 0.80,class:^(gnome-boxes)$ # Boxes-Gtk"
|
|
||||||
"opacity 0.80 0.80,class:^(discord)$ # Discord-Electron"
|
|
||||||
"opacity 0.80 0.80,class:^(vesktop)$ # Vesktop-Electron"
|
|
||||||
"opacity 0.80 0.80,class:^(ArmCord)$ # ArmCord-Electron"
|
|
||||||
"opacity 0.80 0.80,class:^(app.drey.Warp)$ # Warp-Gtk"
|
|
||||||
"opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt"
|
|
||||||
"opacity 0.80 0.80,class:^(yad)$ # Protontricks-Gtk"
|
|
||||||
"opacity 0.80 0.80,class:^(signal)$ # Signal-Gtk"
|
|
||||||
"opacity 0.80 0.80,class:^(io.github.alainm23.planify)$ # planify-Gtk"
|
|
||||||
"opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk"
|
|
||||||
"opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk"
|
|
||||||
"opacity 0.80 0.80,class:^(lutris)$ # Lutris game launcher"
|
|
||||||
|
|
||||||
"opacity 0.80 0.70,class:^(pavucontrol)$"
|
|
||||||
"opacity 0.80 0.70,class:^(blueman-manager)$"
|
|
||||||
"opacity 0.80 0.70,class:^(nm-applet)$"
|
|
||||||
"opacity 0.80 0.70,class:^(nm-connection-editor)$"
|
|
||||||
"opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$"
|
|
||||||
|
|
||||||
"float,class:^(org.kde.dolphin)$,title:^(Progress Dialog — Dolphin)$"
|
|
||||||
"float,class:^(org.kde.dolphin)$,title:^(Copying — Dolphin)$"
|
|
||||||
"float,title:^(Picture-in-Picture)$"
|
|
||||||
"float,class:^(librewolf)$,title:^(Library)$"
|
|
||||||
"float,class:^(vlc)$"
|
|
||||||
"float,class:^(kvantummanager)$"
|
|
||||||
"float,class:^(qt5ct)$"
|
|
||||||
"float,class:^(qt6ct)$"
|
|
||||||
"float,class:^(nwg-look)$"
|
|
||||||
"float,class:^(org.kde.ark)$"
|
|
||||||
"float,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk"
|
|
||||||
"float,class:^(app.drey.Warp)$ # Warp-Gtk"
|
|
||||||
"float,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt"
|
|
||||||
"float,class:^(yad)$ # Protontricks-Gtk"
|
|
||||||
"float,class:^(eog)$ # Imageviewer-Gtk"
|
|
||||||
"float,class:^(io.github.alainm23.planify)$ # planify-Gtk"
|
|
||||||
"float,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk"
|
|
||||||
"float,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk"
|
|
||||||
"float,class:^(pavucontrol)$"
|
|
||||||
"float,class:^(blueman-manager)$"
|
|
||||||
"float,class:^(nm-applet)$"
|
|
||||||
"float,class:^(nm-connection-editor)$"
|
|
||||||
"float,class:^(org.kde.polkit-kde-authentication-agent-1)$"
|
|
||||||
"opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.gtk)$"
|
|
||||||
"opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.hyprland)$"
|
|
||||||
];
|
|
||||||
layerrule = [
|
|
||||||
"blur,rofi"
|
|
||||||
"ignorezero,rofi"
|
|
||||||
"blur,notifications"
|
|
||||||
"ignorezero,notifications"
|
|
||||||
"blur,swaync-notification-window"
|
|
||||||
"ignorezero,swaync-notification-window"
|
|
||||||
"blur,swaync-control-center"
|
|
||||||
"ignorezero,swaync-control-center"
|
|
||||||
"blur,logout_dialog"
|
|
||||||
];
|
|
||||||
monitor =
|
|
||||||
[ "DP-1,2560x1440@165,1920x0,auto" "HDMI-A-1,1920x1080@60,0x0,1" ];
|
|
||||||
dwindle = {
|
|
||||||
pseudotile = "yes";
|
|
||||||
preserve_split = "yes";
|
|
||||||
};
|
|
||||||
animations = {
|
|
||||||
enabled = "yes";
|
|
||||||
bezier = [
|
|
||||||
"wind, 0.05, 0.9, 0.1, 1.05"
|
|
||||||
"winIn, 0.1, 1.1, 0.1, 1.1"
|
|
||||||
"winOut, 0.3, -0.3, 0, 1"
|
|
||||||
"liner, 1, 1, 1, 1"
|
|
||||||
];
|
|
||||||
animation = [
|
|
||||||
"windows, 1, 6, wind, slide"
|
|
||||||
"windowsIn, 1, 6, winIn, slide"
|
|
||||||
"windowsOut, 1, 5, winOut, slide"
|
|
||||||
"windowsMove, 1, 5, wind, slide"
|
|
||||||
"border, 1, 1, liner"
|
|
||||||
"borderangle, 1, 30, liner, loop"
|
|
||||||
"fade, 1, 10, default"
|
|
||||||
"workspaces, 1, 5, wind"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
general = {
|
|
||||||
gaps_in = "3";
|
|
||||||
gaps_out = "8";
|
|
||||||
border_size = "2";
|
|
||||||
#
|
|
||||||
# the dot is a hyprland name, not nix syntax, so we escape it
|
|
||||||
"col.active_border" = "rgba(ca9ee6ff) rgba(f2d5cfff) 45deg";
|
|
||||||
"col.inactive_border" = "rgba(b4befecc) rgba(6c7086cc) 45deg";
|
|
||||||
layout = "dwindle";
|
|
||||||
resize_on_border = "true";
|
|
||||||
sensitivity = "0.5";
|
|
||||||
};
|
|
||||||
decoration = {
|
|
||||||
rounding = "10";
|
|
||||||
drop_shadow = "false";
|
|
||||||
dim_special = "0.3";
|
|
||||||
blur = {
|
|
||||||
enabled = "yes";
|
|
||||||
size = "6";
|
|
||||||
passes = "3";
|
|
||||||
new_optimizations = "on";
|
|
||||||
ignore_opacity = "on";
|
|
||||||
xray = "false";
|
|
||||||
special = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
210
users/youwen/linux/hyprland/common.nix
Normal file
210
users/youwen/linux/hyprland/common.nix
Normal file
|
@ -0,0 +1,210 @@
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
exec-once = [ "waypaper --restore" ];
|
||||||
|
"$mod" = "SUPER";
|
||||||
|
"$Left" = "Y";
|
||||||
|
"$Right" = "O";
|
||||||
|
"$Up" = "I";
|
||||||
|
"$Down" = "U";
|
||||||
|
env = [
|
||||||
|
"HYPRCURSOR_THEME,Bibata-Modern-Ice"
|
||||||
|
"HYPRCURSOR_SIZE,26"
|
||||||
|
"XCURSOR_THEME,Bibata-Modern-Ice"
|
||||||
|
"XCURSOR_SIZE,26"
|
||||||
|
];
|
||||||
|
bind = [
|
||||||
|
# Application Keybinds
|
||||||
|
"$mod, F, exec, librewolf"
|
||||||
|
"$mod, T, exec, kitty"
|
||||||
|
"$mod, E, exec, dolphin"
|
||||||
|
"$mod, R, exec, pavucontrol"
|
||||||
|
|
||||||
|
# Window actions
|
||||||
|
"$mod, Q, killactive"
|
||||||
|
"$mod, W, togglefloating"
|
||||||
|
"$mod, J, togglesplit"
|
||||||
|
"$mod, Return, fullscreen"
|
||||||
|
|
||||||
|
# Move around
|
||||||
|
"$mod, $Left, movefocus, l"
|
||||||
|
"$mod, $Right, movefocus, r"
|
||||||
|
"$mod, $Up, movefocus, u"
|
||||||
|
"$mod, $Down, movefocus, d"
|
||||||
|
|
||||||
|
"$mod, 1, workspace, 1"
|
||||||
|
"$mod, 2, workspace, 2"
|
||||||
|
"$mod, 3, workspace, 3"
|
||||||
|
"$mod, 4, workspace, 4"
|
||||||
|
"$mod, 5, workspace, 5"
|
||||||
|
"$mod, 6, workspace, 6"
|
||||||
|
"$mod, 7, workspace, 7"
|
||||||
|
"$mod, 8, workspace, 8"
|
||||||
|
"$mod, 9, workspace, 9"
|
||||||
|
"$mod, 0, workspace, 10"
|
||||||
|
|
||||||
|
"$mod, S, togglespecialworkspace"
|
||||||
|
|
||||||
|
# Move windows around
|
||||||
|
"$mod+Shift+Ctrl, $Left, movewindow, l"
|
||||||
|
"$mod+Shift+Ctrl, $Right, movewindow, r"
|
||||||
|
"$mod+Shift+Ctrl, $Up, movewindow, u"
|
||||||
|
"$mod+Shift+Ctrl, $Down, movewindow, d"
|
||||||
|
|
||||||
|
"$mod+Ctrl+Alt, $Right, movetoworkspace, r+1"
|
||||||
|
"$mod+Ctrl+Alt, $Left, movetoworkspace, r-1"
|
||||||
|
|
||||||
|
"$mod+Ctrl, $Right, workspace, r+1"
|
||||||
|
"$mod+Ctrl, $Left, workspace, r-1"
|
||||||
|
|
||||||
|
"$mod+Alt, S, movetoworkspacesilent, special"
|
||||||
|
|
||||||
|
# Utilities
|
||||||
|
"$mod, Space, exec, pkill -x rofi || rofi -show drun" # Run rofi
|
||||||
|
|
||||||
|
''$mod, P, exec, grim -g "$(slurp)" - | swappy -f -'' # Screenshot
|
||||||
|
|
||||||
|
"$mod, Backspace, exec, wlogout" # Screenshot
|
||||||
|
];
|
||||||
|
bindm = [
|
||||||
|
"$mod, mouse:272, movewindow"
|
||||||
|
"$mod, mouse:273, resizewindow"
|
||||||
|
"$mod, Z, movewindow"
|
||||||
|
"$mod, X, resizewindow"
|
||||||
|
];
|
||||||
|
windowrulev2 = [
|
||||||
|
"opacity 0.90 0.90,class:^(librewolf)$"
|
||||||
|
"opacity 0.90 0.90,class:^(Brave-browser)$"
|
||||||
|
"opacity 0.80 0.80,class:^(Steam)$"
|
||||||
|
"opacity 0.80 0.80,class:^(steam)$"
|
||||||
|
"opacity 0.80 0.80,class:^(steamwebhelper)$"
|
||||||
|
"opacity 0.80 0.80,class:^(Spotify)$"
|
||||||
|
"opacity 0.80 0.80,initialTitle:^(Spotify Premium)$"
|
||||||
|
"opacity 0.80 0.80,initialTitle:^(Spotify Free)$"
|
||||||
|
"opacity 0.80 0.80,class:^(code-oss)$"
|
||||||
|
"opacity 0.80 0.80,class:^(Code)$"
|
||||||
|
"opacity 0.80 0.80,class:^(code-url-handler)$"
|
||||||
|
"opacity 0.80 0.80,class:^(code-insiders-url-handler)$"
|
||||||
|
"opacity 0.80 0.80,class:^(kitty)$"
|
||||||
|
"opacity 0.80 0.80,class:^(org.kde.dolphin)$"
|
||||||
|
"opacity 0.80 0.80,class:^(org.kde.ark)$"
|
||||||
|
"opacity 0.80 0.80,class:^(nwg-look)$"
|
||||||
|
"opacity 0.80 0.80,class:^(qt5ct)$"
|
||||||
|
"opacity 0.80 0.80,class:^(qt6ct)$"
|
||||||
|
"opacity 0.80 0.80,class:^(kvantummanager)$"
|
||||||
|
|
||||||
|
"opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk"
|
||||||
|
"opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk"
|
||||||
|
"opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ # Cartridges-Gtk"
|
||||||
|
"opacity 0.80 0.80,class:^(com.obsproject.Studio)$ # Obs-Qt"
|
||||||
|
"opacity 0.80 0.80,class:^(gnome-boxes)$ # Boxes-Gtk"
|
||||||
|
"opacity 0.80 0.80,class:^(discord)$ # Discord-Electron"
|
||||||
|
"opacity 0.80 0.80,class:^(vesktop)$ # Vesktop-Electron"
|
||||||
|
"opacity 0.80 0.80,class:^(ArmCord)$ # ArmCord-Electron"
|
||||||
|
"opacity 0.80 0.80,class:^(app.drey.Warp)$ # Warp-Gtk"
|
||||||
|
"opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt"
|
||||||
|
"opacity 0.80 0.80,class:^(yad)$ # Protontricks-Gtk"
|
||||||
|
"opacity 0.80 0.80,class:^(signal)$ # Signal-Gtk"
|
||||||
|
"opacity 0.80 0.80,class:^(io.github.alainm23.planify)$ # planify-Gtk"
|
||||||
|
"opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk"
|
||||||
|
"opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk"
|
||||||
|
"opacity 0.80 0.80,class:^(lutris)$ # Lutris game launcher"
|
||||||
|
|
||||||
|
"opacity 0.80 0.70,class:^(pavucontrol)$"
|
||||||
|
"opacity 0.80 0.70,class:^(blueman-manager)$"
|
||||||
|
"opacity 0.80 0.70,class:^(nm-applet)$"
|
||||||
|
"opacity 0.80 0.70,class:^(nm-connection-editor)$"
|
||||||
|
"opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$"
|
||||||
|
|
||||||
|
"float,class:^(org.kde.dolphin)$,title:^(Progress Dialog — Dolphin)$"
|
||||||
|
"float,class:^(org.kde.dolphin)$,title:^(Copying — Dolphin)$"
|
||||||
|
"float,title:^(Picture-in-Picture)$"
|
||||||
|
"float,class:^(librewolf)$,title:^(Library)$"
|
||||||
|
"float,class:^(vlc)$"
|
||||||
|
"float,class:^(kvantummanager)$"
|
||||||
|
"float,class:^(qt5ct)$"
|
||||||
|
"float,class:^(qt6ct)$"
|
||||||
|
"float,class:^(nwg-look)$"
|
||||||
|
"float,class:^(org.kde.ark)$"
|
||||||
|
"float,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk"
|
||||||
|
"float,class:^(app.drey.Warp)$ # Warp-Gtk"
|
||||||
|
"float,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt"
|
||||||
|
"float,class:^(yad)$ # Protontricks-Gtk"
|
||||||
|
"float,class:^(eog)$ # Imageviewer-Gtk"
|
||||||
|
"float,class:^(io.github.alainm23.planify)$ # planify-Gtk"
|
||||||
|
"float,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk"
|
||||||
|
"float,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk"
|
||||||
|
"float,class:^(pavucontrol)$"
|
||||||
|
"float,class:^(blueman-manager)$"
|
||||||
|
"float,class:^(nm-applet)$"
|
||||||
|
"float,class:^(nm-connection-editor)$"
|
||||||
|
"float,class:^(org.kde.polkit-kde-authentication-agent-1)$"
|
||||||
|
"opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.gtk)$"
|
||||||
|
"opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.hyprland)$"
|
||||||
|
];
|
||||||
|
layerrule = [
|
||||||
|
"blur,rofi"
|
||||||
|
"ignorezero,rofi"
|
||||||
|
"blur,notifications"
|
||||||
|
"ignorezero,notifications"
|
||||||
|
"blur,swaync-notification-window"
|
||||||
|
"ignorezero,swaync-notification-window"
|
||||||
|
"blur,swaync-control-center"
|
||||||
|
"ignorezero,swaync-control-center"
|
||||||
|
"blur,logout_dialog"
|
||||||
|
];
|
||||||
|
monitor =
|
||||||
|
[ "DP-1,2560x1440@165,1920x0,auto" "HDMI-A-1,1920x1080@60,0x0,1" ];
|
||||||
|
dwindle = {
|
||||||
|
pseudotile = "yes";
|
||||||
|
preserve_split = "yes";
|
||||||
|
};
|
||||||
|
animations = {
|
||||||
|
enabled = "yes";
|
||||||
|
bezier = [
|
||||||
|
"wind, 0.05, 0.9, 0.1, 1.05"
|
||||||
|
"winIn, 0.1, 1.1, 0.1, 1.1"
|
||||||
|
"winOut, 0.3, -0.3, 0, 1"
|
||||||
|
"liner, 1, 1, 1, 1"
|
||||||
|
];
|
||||||
|
animation = [
|
||||||
|
"windows, 1, 6, wind, slide"
|
||||||
|
"windowsIn, 1, 6, winIn, slide"
|
||||||
|
"windowsOut, 1, 5, winOut, slide"
|
||||||
|
"windowsMove, 1, 5, wind, slide"
|
||||||
|
"border, 1, 1, liner"
|
||||||
|
"borderangle, 1, 30, liner, loop"
|
||||||
|
"fade, 1, 10, default"
|
||||||
|
"workspaces, 1, 5, wind"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
general = {
|
||||||
|
gaps_in = "3";
|
||||||
|
gaps_out = "8";
|
||||||
|
border_size = "2";
|
||||||
|
#
|
||||||
|
# the dot is a hyprland name, not nix syntax, so we escape it
|
||||||
|
"col.active_border" = "rgba(ca9ee6ff) rgba(f2d5cfff) 45deg";
|
||||||
|
"col.inactive_border" = "rgba(b4befecc) rgba(6c7086cc) 45deg";
|
||||||
|
layout = "dwindle";
|
||||||
|
resize_on_border = "true";
|
||||||
|
sensitivity = "0.5";
|
||||||
|
};
|
||||||
|
decoration = {
|
||||||
|
rounding = "10";
|
||||||
|
drop_shadow = "false";
|
||||||
|
dim_special = "0.3";
|
||||||
|
blur = {
|
||||||
|
enabled = "yes";
|
||||||
|
size = "6";
|
||||||
|
passes = "3";
|
||||||
|
new_optimizations = "on";
|
||||||
|
ignore_opacity = "on";
|
||||||
|
xray = "false";
|
||||||
|
special = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
3
users/youwen/linux/hyprland/desktop/default.nix
Normal file
3
users/youwen/linux/hyprland/desktop/default.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
imports = [ ../common.nix ./desktop-only.nix ];
|
||||||
|
}
|
1
users/youwen/linux/hyprland/desktop/desktop-only.nix
Normal file
1
users/youwen/linux/hyprland/desktop/desktop-only.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ }
|
3
users/youwen/linux/hyprland/laptop/default.nix
Normal file
3
users/youwen/linux/hyprland/laptop/default.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
imports = [ ../common.nix ./laptop-only.nix ];
|
||||||
|
}
|
1
users/youwen/linux/hyprland/laptop/laptop-only.nix
Normal file
1
users/youwen/linux/hyprland/laptop/laptop-only.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ }
|
4
users/youwen/linux/laptop/default.nix
Normal file
4
users/youwen/linux/laptop/default.nix
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
imports = [ ../theming ../home.nix ../programs ../hyprland/laptop ../common-desktop-environment.nix ];
|
||||||
|
}
|
||||||
|
|
3
users/youwen/linux/packages/aarch-64/default.nix
Normal file
3
users/youwen/linux/packages/aarch-64/default.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let createCommon = import ../common-packages.nix;
|
||||||
|
in { home.packages = ((createCommon pkgs) ++ [ ]); }
|
49
users/youwen/linux/packages/common-packages.nix
Normal file
49
users/youwen/linux/packages/common-packages.nix
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
pkgs: with pkgs; [
|
||||||
|
neofetch
|
||||||
|
|
||||||
|
# archives
|
||||||
|
zip
|
||||||
|
xz
|
||||||
|
unzip
|
||||||
|
p7zip
|
||||||
|
|
||||||
|
# utils
|
||||||
|
nurl # helps fetch git data for nixpkgs
|
||||||
|
|
||||||
|
# nix related
|
||||||
|
#
|
||||||
|
# it provides the command `nom` works just like `nix`
|
||||||
|
# with more details log output
|
||||||
|
nix-output-monitor
|
||||||
|
|
||||||
|
# system tools
|
||||||
|
pciutils # lspci
|
||||||
|
usbutils # lsusb
|
||||||
|
|
||||||
|
# desktop utils
|
||||||
|
wl-clipboard
|
||||||
|
grim
|
||||||
|
slurp
|
||||||
|
swappy
|
||||||
|
pavucontrol
|
||||||
|
swww
|
||||||
|
waypaper
|
||||||
|
|
||||||
|
# desktop apps
|
||||||
|
dolphin
|
||||||
|
thunderbird
|
||||||
|
vesktop
|
||||||
|
signal-desktop
|
||||||
|
|
||||||
|
# dev tools
|
||||||
|
nodePackages_latest.pnpm
|
||||||
|
rustfmt
|
||||||
|
rust-analyzer
|
||||||
|
|
||||||
|
# desktop ricing
|
||||||
|
bibata-cursors
|
||||||
|
libsForQt5.qtstyleplugin-kvantum
|
||||||
|
libsForQt5.qt5ct
|
||||||
|
papirus-icon-theme
|
||||||
|
libsForQt5.qt5ct
|
||||||
|
]
|
10
users/youwen/linux/packages/x86_64/default.nix
Normal file
10
users/youwen/linux/packages/x86_64/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let createCommon = import ../common-packages.nix;
|
||||||
|
in { home.packages = ((createCommon pkgs) ++ with pkgs; [
|
||||||
|
spotify
|
||||||
|
bitwarden-desktop
|
||||||
|
modrinth-app
|
||||||
|
lutris
|
||||||
|
wine
|
||||||
|
]);
|
||||||
|
}
|
0
users/youwen/linux/programs.nix → users/youwen/linux/programs/default.nix
Executable file → Normal file
0
users/youwen/linux/programs.nix → users/youwen/linux/programs/default.nix
Executable file → Normal file
31
users/youwen/linux/theming/default.nix
Normal file
31
users/youwen/linux/theming/default.nix
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [ ./catppuccin.nix ];
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
catppuccin.enable = true;
|
||||||
|
cursorTheme = {
|
||||||
|
name = "Bibata-Modern-Ice";
|
||||||
|
size = 26;
|
||||||
|
};
|
||||||
|
iconTheme = { name = "Papirus-Dark"; };
|
||||||
|
};
|
||||||
|
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme.name = "qtct";
|
||||||
|
style.name = "kvantum";
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile = {
|
||||||
|
"Kvantum/kvantum.kvconfig".text = ''
|
||||||
|
[General]
|
||||||
|
theme=GraphiteNordDark
|
||||||
|
'';
|
||||||
|
|
||||||
|
"Kvantum/GraphiteNord".source =
|
||||||
|
"${pkgs.graphite-kde-theme}/share/Kvantum/GraphiteNord";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
3
users/youwen/linux/waybar/default.nix
Normal file
3
users/youwen/linux/waybar/default.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
programs.waybar = import ./waybar-conf.nix;
|
||||||
|
}
|
Loading…
Reference in a new issue