1
0
forked from extern/nix-config

nix: Format with alejandra

Alejandra is written in Rust, has more tests than nixfmt, and handles
non-trivial code examples in Nix better.
This commit is contained in:
Donovan Glover 2023-06-05 20:37:52 -04:00
parent 1077200205
commit 3119b789f8
No known key found for this signature in database
GPG Key ID: EA7408A77AE1BE65
41 changed files with 1773 additions and 1698 deletions

View File

@ -1,6 +1,12 @@
{ pkgs, lib, hypr-contrib, nix-gaming, ... }:
let VARIABLES = import ./variables.nix; in {
{
pkgs,
lib,
hypr-contrib,
nix-gaming,
...
}: let
VARIABLES = import ./variables.nix;
in {
imports = [
./modules
./containers/rar.nix
@ -9,12 +15,11 @@ let VARIABLES = import ./variables.nix; in {
# locale
i18n.defaultLocale = "ja_JP.UTF-8";
i18n.supportedLocales =
[ "ja_JP.UTF-8/UTF-8" "en_US.UTF-8/UTF-8" "fr_FR.UTF-8/UTF-8" ];
i18n.supportedLocales = ["ja_JP.UTF-8/UTF-8" "en_US.UTF-8/UTF-8" "fr_FR.UTF-8/UTF-8"];
# nix
nix.package = pkgs.nixFlakes;
nix.settings.experimental-features = [ "nix-command" "flakes" "repl-flake" ];
nix.settings.experimental-features = ["nix-command" "flakes" "repl-flake"];
hardware.opengl.driSupport32Bit = true;
@ -36,8 +41,8 @@ let VARIABLES = import ./variables.nix; in {
environment.systemPackages = with pkgs; [
hypr-contrib.packages."${VARIABLES.system}".grimblast
nix-gaming.packages."${VARIABLES.system}".osu-stable
(pkgs.callPackage ./packages/waycorner { })
(pkgs.callPackage ./packages/srb2 { })
(pkgs.callPackage ./packages/waycorner {})
(pkgs.callPackage ./packages/srb2 {})
slade
typespeed
osu-lazer-bin
@ -72,10 +77,11 @@ let VARIABLES = import ./variables.nix; in {
bacon
];
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"osu-lazer-bin"
"vmware-workstation"
];
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"osu-lazer-bin"
"vmware-workstation"
];
environment.sessionVariables = {
EDITOR = "nvim";
@ -85,7 +91,7 @@ let VARIABLES = import ./variables.nix; in {
NODE_OPTIONS = "--max_old_space_size=16384";
};
environment.defaultPackages = [ ];
environment.defaultPackages = [];
system.stateVersion = "22.11";
# home-manager
@ -93,41 +99,43 @@ let VARIABLES = import ./variables.nix; in {
useGlobalPkgs = true;
useUserPackages = true;
sharedModules = [{
home.stateVersion = "22.11";
sharedModules = [
{
home.stateVersion = "22.11";
editorconfig = {
enable = true;
editorconfig = {
enable = true;
settings = {
"*" = {
charset = "utf-8";
end_of_line = "lf";
insert_final_newline = true;
indent_size = 2;
indent_style = "space";
trim_trailing_whitespace = true;
};
settings = {
"*" = {
charset = "utf-8";
end_of_line = "lf";
insert_final_newline = true;
indent_size = 2;
indent_style = "space";
trim_trailing_whitespace = true;
};
"*.md".indent_style = "tab";
"*.md".indent_style = "tab";
"Makefile" = {
indent_style = "tab";
indent_size = 4;
};
"Makefile" = {
indent_style = "tab";
indent_size = 4;
};
"*.html" = {
indent_style = "tab";
indent_size = 4;
};
"*.html" = {
indent_style = "tab";
indent_size = 4;
};
"*.go" = {
indent_style = "tab";
indent_size = 4;
"*.go" = {
indent_style = "tab";
indent_size = 4;
};
};
};
};
}];
}
];
};
# systemd
@ -149,7 +157,7 @@ let VARIABLES = import ./variables.nix; in {
isNormalUser = true;
uid = 1000;
password = "user";
extraGroups = [ "wheel" "networkmanager" ];
extraGroups = ["wheel" "networkmanager"];
};
};
@ -171,7 +179,7 @@ let VARIABLES = import ./variables.nix; in {
wifi.macAddress = "random";
ethernet.macAddress = "random";
unmanaged = [ "interface-name:ve-*" ];
unmanaged = ["interface-name:ve-*"];
};
useHostResolvConf = true;
@ -189,8 +197,7 @@ let VARIABLES = import ./variables.nix; in {
restrictNetwork = true;
};
virtualisation.qemu.options =
[ "-device virtio-vga-gl" "-display sdl,gl=on,show-cursor=off" "-full-screen" ];
virtualisation.qemu.options = ["-device virtio-vga-gl" "-display sdl,gl=on,show-cursor=off" "-full-screen"];
environment.sessionVariables = {
WLR_NO_HARDWARE_CURSORS = "1";
@ -203,12 +210,12 @@ let VARIABLES = import ./variables.nix; in {
enableExcludeWrapper = false;
};
networking.firewall.allowedTCPPorts = [ 11918 ];
networking.firewall.allowedTCPPorts = [11918];
networking = {
nat = {
enable = true;
internalInterfaces = [ "ve-+" ];
internalInterfaces = ["ve-+"];
externalInterface = "wg-mullvad";
forwardPorts = [

View File

@ -9,7 +9,11 @@
};
};
config = { pkgs, lib, ... }: {
config = {
pkgs,
lib,
...
}: {
programs = {
fish.enable = true;
neovim.enable = true;
@ -28,13 +32,13 @@
};
environment = {
shells = with pkgs; [ fish ];
shells = with pkgs; [fish];
variables = {
TERM = "xterm-kitty";
};
defaultPackages = [ ];
defaultPackages = [];
};
environment.systemPackages = with pkgs; [
@ -43,10 +47,11 @@
unrar
];
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"rar"
"unrar"
];
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"rar"
"unrar"
];
system.stateVersion = "22.11";
};

View File

@ -1,8 +1,6 @@
{ config, ... }:
let hostCfg = config; in
{
{config, ...}: let
hostCfg = config;
in {
containers.wine = {
privateNetwork = true;
@ -24,7 +22,11 @@ let hostCfg = config; in
};
};
config = { pkgs, lib, ... }: {
config = {
pkgs,
lib,
...
}: {
programs = {
fish.enable = true;
neovim.enable = true;
@ -43,13 +45,13 @@ let hostCfg = config; in
};
environment = {
shells = with pkgs; [ fish ];
shells = with pkgs; [fish];
variables = {
TERM = "xterm-kitty";
};
defaultPackages = [ ];
defaultPackages = [];
};
environment.systemPackages = with pkgs; [

View File

@ -1,5 +1,13 @@
{
outputs = { self, nixpkgs, home-manager, hyprland, stylix, nix-gaming, ... }@attrs: let
outputs = {
self,
nixpkgs,
home-manager,
hyprland,
stylix,
nix-gaming,
...
} @ attrs: let
VARIABLES = import ./variables.nix;
in {
formatter."${VARIABLES.system}" = nixpkgs.legacyPackages."${VARIABLES.system}".alejandra;

View File

@ -1,28 +1,32 @@
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-label/nixos";
fsType = "btrfs";
};
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
fsType = "btrfs";
};
boot.initrd.luks.devices."root".device = "/dev/disk/by-label/nixos-luks";
fileSystems."/boot" =
{ device = "/dev/disk/by-label/boot";
fsType = "vfat";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/boot";
fsType = "vfat";
};
swapDevices = [ ];
swapDevices = [];
networking.useDHCP = lib.mkDefault true;

View File

@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
imports = [
./feh
./kitty
@ -126,18 +124,20 @@
swww
kickoff
greetd.tuigreet
(pkgs.callPackage ../packages/nwg-dock { })
(pkgs.callPackage ../packages/hyprland-autorename-workspaces { })
(pkgs.callPackage ../packages/nwg-dock {})
(pkgs.callPackage ../packages/hyprland-autorename-workspaces {})
];
home-manager.sharedModules = [{
programs.bat.enable = true;
}];
home-manager.sharedModules = [
{
programs.bat.enable = true;
}
];
programs.htop = {
enable = true;
package = pkgs."htop-vim";
settings = { tree_view = 1; };
settings = {tree_view = 1;};
};
services.greetd = {

View File

@ -1,9 +1,7 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
services.interception-tools = {
enable = true;
plugins = [ pkgs.interception-tools-plugins.dual-function-keys ];
plugins = [pkgs.interception-tools-plugins.dual-function-keys];
udevmonConfig = ''
- JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.dual-function-keys}/bin/dual-function-keys -c /etc/dual-function-keys.yaml | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE"
DEVICE:

View File

@ -1,30 +1,30 @@
{ pkgs, ... }:
{pkgs, ...}: {
environment.systemPackages = [pkgs.libnotify];
{
environment.systemPackages = [ pkgs.libnotify ];
home-manager.sharedModules = [
{
services.dunst = {
enable = true;
home-manager.sharedModules = [{
services.dunst = {
enable = true;
settings = {
global = {
geometry = "1870x5-25+45";
width = 350;
separator_height = 5;
padding = 24;
horizontal_padding = 24;
frame_width = 3;
idle_threshold = 120;
alignment = "center";
word_wrap = "yes";
transparency = 5;
format = "<b>%s</b>: %b";
markup = "full";
min_icon_size = 128;
max_icon_size = 128;
settings = {
global = {
geometry = "1870x5-25+45";
width = 350;
separator_height = 5;
padding = 24;
horizontal_padding = 24;
frame_width = 3;
idle_threshold = 120;
alignment = "center";
word_wrap = "yes";
transparency = 5;
format = "<b>%s</b>: %b";
markup = "full";
min_icon_size = 128;
max_icon_size = 128;
};
};
};
};
}];
}
];
}

View File

@ -1,173 +1,173 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
i18n.inputMethod.enabled = "fcitx5";
i18n.inputMethod.fcitx5.addons = [ pkgs.fcitx5-mozc ];
i18n.inputMethod.fcitx5.addons = [pkgs.fcitx5-mozc];
home-manager.sharedModules = [{
xdg.configFile."mozc/ibus_config.textproto".force = true;
xdg.configFile."mozc/ibus_config.textproto".text = ''
engines {
name : "mozc-jp"
longname : "Mozc"
layout : "default"
layout_variant : ""
layout_option : ""
rank : 80
}
active_on_launch: True
'';
xdg.configFile."fcitx5/config".force = true;
xdg.configFile."fcitx5/config".text = ''
[Hotkey]
# Enumerate when press trigger key repeatedly
EnumerateWithTriggerKeys=True
# Temporally switch between first and current Input Method
AltTriggerKeys=
# Enumerate Input Method Forward
EnumerateForwardKeys=
# Enumerate Input Method Backward
EnumerateBackwardKeys=
# Skip first input method while enumerating
EnumerateSkipFirst=False
# Enumerate Input Method Group Forward
EnumerateGroupForwardKeys=
# Enumerate Input Method Group Backward
EnumerateGroupBackwardKeys=
# Activate Input Method
ActivateKeys=
# Deactivate Input Method
DeactivateKeys=
home-manager.sharedModules = [
{
xdg.configFile."mozc/ibus_config.textproto".force = true;
xdg.configFile."mozc/ibus_config.textproto".text = ''
engines {
name : "mozc-jp"
longname : "Mozc"
layout : "default"
layout_variant : ""
layout_option : ""
rank : 80
}
active_on_launch: True
'';
xdg.configFile."fcitx5/config".force = true;
xdg.configFile."fcitx5/config".text = ''
[Hotkey]
# Enumerate when press trigger key repeatedly
EnumerateWithTriggerKeys=True
# Temporally switch between first and current Input Method
AltTriggerKeys=
# Enumerate Input Method Forward
EnumerateForwardKeys=
# Enumerate Input Method Backward
EnumerateBackwardKeys=
# Skip first input method while enumerating
EnumerateSkipFirst=False
# Enumerate Input Method Group Forward
EnumerateGroupForwardKeys=
# Enumerate Input Method Group Backward
EnumerateGroupBackwardKeys=
# Activate Input Method
ActivateKeys=
# Deactivate Input Method
DeactivateKeys=
[Hotkey/TriggerKeys]
0=Super+space
[Hotkey/TriggerKeys]
0=Super+space
[Hotkey/PrevPage]
0=Up
[Hotkey/PrevPage]
0=Up
[Hotkey/NextPage]
0=Down
[Hotkey/NextPage]
0=Down
[Hotkey/PrevCandidate]
0=Shift+Tab
[Hotkey/PrevCandidate]
0=Shift+Tab
[Hotkey/NextCandidate]
0=Tab
[Hotkey/NextCandidate]
0=Tab
[Hotkey/TogglePreedit]
0=Control+Alt+P
[Hotkey/TogglePreedit]
0=Control+Alt+P
[Behavior]
# Active By Default
ActiveByDefault=False
# Share Input State
ShareInputState=No
# Show preedit in application
PreeditEnabledByDefault=True
# Show Input Method Information when switch input method
ShowInputMethodInformation=True
# Show Input Method Information when changing focus
showInputMethodInformationWhenFocusIn=False
# Show compact input method information
CompactInputMethodInformation=True
# Show first input method information
ShowFirstInputMethodInformation=True
# Default page size
DefaultPageSize=5
# Override Xkb Option
OverrideXkbOption=False
# Custom Xkb Option
CustomXkbOption=
# Force Enabled Addons
EnabledAddons=
# Force Disabled Addons
DisabledAddons=
# Preload input method to be used by default
PreloadInputMethod=True
'';
xdg.configFile."fcitx5/profile".force = true;
xdg.configFile."fcitx5/profile".text = ''
[Groups/0]
# Group Name
Name="Group 1"
# Layout
Default Layout=us
# Default Input Method
DefaultIM=mozc
[Behavior]
# Active By Default
ActiveByDefault=False
# Share Input State
ShareInputState=No
# Show preedit in application
PreeditEnabledByDefault=True
# Show Input Method Information when switch input method
ShowInputMethodInformation=True
# Show Input Method Information when changing focus
showInputMethodInformationWhenFocusIn=False
# Show compact input method information
CompactInputMethodInformation=True
# Show first input method information
ShowFirstInputMethodInformation=True
# Default page size
DefaultPageSize=5
# Override Xkb Option
OverrideXkbOption=False
# Custom Xkb Option
CustomXkbOption=
# Force Enabled Addons
EnabledAddons=
# Force Disabled Addons
DisabledAddons=
# Preload input method to be used by default
PreloadInputMethod=True
'';
xdg.configFile."fcitx5/profile".force = true;
xdg.configFile."fcitx5/profile".text = ''
[Groups/0]
# Group Name
Name="Group 1"
# Layout
Default Layout=us
# Default Input Method
DefaultIM=mozc
[Groups/0/Items/0]
# Name
Name=keyboard-us
# Layout
Layout=
[Groups/0/Items/0]
# Name
Name=keyboard-us
# Layout
Layout=
[Groups/0/Items/1]
# Name
Name=mozc
# Layout
Layout=
[Groups/0/Items/1]
# Name
Name=mozc
# Layout
Layout=
[GroupOrder]
0="Group 1"
'';
xdg.configFile."fcitx5/conf/classicui.conf".force = true;
xdg.configFile."fcitx5/conf/classicui.conf".text = ''
# Vertical Candidate List
Vertical Candidate List=False
# Use Per Screen DPI
PerScreenDPI=True
# Use mouse wheel to go to prev or next page
WheelForPaging=True
# Font
Font="Noto Sans CJK JP 11"
# Menu Font
MenuFont="Noto Sans CJK JP 11"
# Tray Font
TrayFont="Noto Sans CJK JP Medium 11"
# Tray Label Outline Color
TrayOutlineColor=#49483e
# Tray Label Text Color
TrayTextColor=#f8f8f2
# Prefer Text Icon
PreferTextIcon=True
# Show Layout Name In Icon
ShowLayoutNameInIcon=True
# Use input method language to display text
UseInputMethodLangaugeToDisplayText=True
# Theme
Theme=default
'';
xdg.configFile."fcitx5/conf/clipboard.conf".force = true;
xdg.configFile."fcitx5/conf/clipboard.conf".text = ''
# Trigger Key
TriggerKey=
# Paste Primary
PastePrimaryKey=
# Number of entries
Number of entries=5
'';
xdg.configFile."fcitx5/conf/mozc.conf".force = true;
xdg.configFile."fcitx5/conf/mozc.conf".text = ''
# Initial Mode
InitialMode=Hiragana
# Vertical candidate list
Vertical=True
# Expand Usage (Requires vertical candidate list)
ExpandMode="On Focus"
# Fix embedded preedit cursor at the beginning of the preedit
PreeditCursorPositionAtBeginning=False
# Hotkey to expand usage
ExpandKey=Control+Alt+H
'';
xdg.configFile."fcitx5/conf/notifications.conf".force = true;
xdg.configFile."fcitx5/conf/notifications.conf".text = ''
# Hidden Notifications
HiddenNotifications=
'';
xdg.configFile."fcitx5/conf/unicode.conf".force = true;
xdg.configFile."fcitx5/conf/unicode.conf".text = ''
# Trigger Key
TriggerKey=
'';
}];
[GroupOrder]
0="Group 1"
'';
xdg.configFile."fcitx5/conf/classicui.conf".force = true;
xdg.configFile."fcitx5/conf/classicui.conf".text = ''
# Vertical Candidate List
Vertical Candidate List=False
# Use Per Screen DPI
PerScreenDPI=True
# Use mouse wheel to go to prev or next page
WheelForPaging=True
# Font
Font="Noto Sans CJK JP 11"
# Menu Font
MenuFont="Noto Sans CJK JP 11"
# Tray Font
TrayFont="Noto Sans CJK JP Medium 11"
# Tray Label Outline Color
TrayOutlineColor=#49483e
# Tray Label Text Color
TrayTextColor=#f8f8f2
# Prefer Text Icon
PreferTextIcon=True
# Show Layout Name In Icon
ShowLayoutNameInIcon=True
# Use input method language to display text
UseInputMethodLangaugeToDisplayText=True
# Theme
Theme=default
'';
xdg.configFile."fcitx5/conf/clipboard.conf".force = true;
xdg.configFile."fcitx5/conf/clipboard.conf".text = ''
# Trigger Key
TriggerKey=
# Paste Primary
PastePrimaryKey=
# Number of entries
Number of entries=5
'';
xdg.configFile."fcitx5/conf/mozc.conf".force = true;
xdg.configFile."fcitx5/conf/mozc.conf".text = ''
# Initial Mode
InitialMode=Hiragana
# Vertical candidate list
Vertical=True
# Expand Usage (Requires vertical candidate list)
ExpandMode="On Focus"
# Fix embedded preedit cursor at the beginning of the preedit
PreeditCursorPositionAtBeginning=False
# Hotkey to expand usage
ExpandKey=Control+Alt+H
'';
xdg.configFile."fcitx5/conf/notifications.conf".force = true;
xdg.configFile."fcitx5/conf/notifications.conf".text = ''
# Hidden Notifications
HiddenNotifications=
'';
xdg.configFile."fcitx5/conf/unicode.conf".force = true;
xdg.configFile."fcitx5/conf/unicode.conf".text = ''
# Trigger Key
TriggerKey=
'';
}
];
}

View File

@ -1,79 +1,81 @@
{
home-manager.sharedModules = [{
programs.feh = {
enable = true;
home-manager.sharedModules = [
{
programs.feh = {
enable = true;
keybindings = {
next_img = [ "k" "Right" ];
prev_img = [ "j" "Left" ];
quit = "q";
toggle_fullscreen = "f";
keybindings = {
next_img = ["k" "Right"];
prev_img = ["j" "Left"];
quit = "q";
toggle_fullscreen = "f";
zoom_in = "h";
zoom_out = "l";
zoom_in = "h";
zoom_out = "l";
toggle_filenames = "d";
toggle_fixed_geometry = "g";
toggle_pause = "h";
toggle_pointer = "a";
size_to_image = "w";
jump_random = "z";
jump_first = "J";
jump_last = "K";
jump_fwd = "H";
jump_back = "L";
scroll_left = "b";
scroll_right = "n";
scroll_up = [ "u" "Up" ];
scroll_down = [ "d" "Down" ];
zoom_default = "o";
zoom_fill = "p";
toggle_auto_zoom = "m";
toggle_filenames = "d";
toggle_fixed_geometry = "g";
toggle_pause = "h";
toggle_pointer = "a";
size_to_image = "w";
jump_random = "z";
jump_first = "J";
jump_last = "K";
jump_fwd = "H";
jump_back = "L";
scroll_left = "b";
scroll_right = "n";
scroll_up = ["u" "Up"];
scroll_down = ["d" "Down"];
zoom_default = "o";
zoom_fill = "p";
toggle_auto_zoom = "m";
toggle_actions = null;
toggle_aliasing = null;
toggle_caption = null;
toggle_exif = null;
save_filelist = null;
toggle_info = null;
toggle_keep_vp = null;
toggle_menu = null;
reload_image = null;
save_image = null;
prev_dir = null;
next_dir = null;
orient_3 = null;
orient_1 = null;
flip = null;
mirror = null;
action_0 = null;
action_1 = null;
action_2 = null;
action_3 = null;
action_4 = null;
action_5 = null;
action_6 = null;
action_7 = null;
action_8 = null;
action_9 = null;
close = null;
reload_plus = null;
reload_minus = null;
remove = null;
delete = null;
scroll_left_page = null;
scroll_right_page = null;
scroll_up_page = null;
scroll_down_page = null;
render = null;
zoom_fit = null;
menu_close = null;
menu_up = null;
menu_down = null;
menu_parent = null;
menu_child = null;
menu_select = null;
toggle_actions = null;
toggle_aliasing = null;
toggle_caption = null;
toggle_exif = null;
save_filelist = null;
toggle_info = null;
toggle_keep_vp = null;
toggle_menu = null;
reload_image = null;
save_image = null;
prev_dir = null;
next_dir = null;
orient_3 = null;
orient_1 = null;
flip = null;
mirror = null;
action_0 = null;
action_1 = null;
action_2 = null;
action_3 = null;
action_4 = null;
action_5 = null;
action_6 = null;
action_7 = null;
action_8 = null;
action_9 = null;
close = null;
reload_plus = null;
reload_minus = null;
remove = null;
delete = null;
scroll_left_page = null;
scroll_right_page = null;
scroll_up_page = null;
scroll_down_page = null;
render = null;
zoom_fit = null;
menu_close = null;
menu_up = null;
menu_down = null;
menu_parent = null;
menu_child = null;
menu_select = null;
};
};
};
}];
}
];
}

View File

@ -1,16 +1,13 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
users.defaultUserShell = pkgs.fish;
environment.shells = [ pkgs.fish ];
environment.shells = [pkgs.fish];
programs.fish = {
enable = true;
shellAliases = {
ls = "exa --group-directories-first -I 'lost+found'";
tree =
"exa --group-directories-first --all --long --tree -I 'node_modules|.git|public|lost+found'";
tree = "exa --group-directories-first --all --long --tree -I 'node_modules|.git|public|lost+found'";
mv = "mv -i";
cp = "cp -ia";
rg = "rg --max-columns=2000";
@ -37,8 +34,7 @@
gra = "git remote add";
gre = "git remote --verbose"; # List all remotes
grh = "git reset HEAD";
grr =
"git reset --hard HEAD~"; # Remove the last commit and all changes with it
grr = "git reset --hard HEAD~"; # Remove the last commit and all changes with it
gs = "git status";
gst = "git stash";
gstp = "git stash pop";
@ -53,15 +49,12 @@
yu = "yarn upgrade-interactive";
dl = "yt-dlp";
vol =
"wpctl set-volume '@DEFAULT_AUDIO_SINK@'"; # Change the volume, e.g. vol 10%+, vol 10%-, vol 100%
vol = "wpctl set-volume '@DEFAULT_AUDIO_SINK@'"; # Change the volume, e.g. vol 10%+, vol 10%-, vol 100%
nf = "tput reset; and neofetch --size 56%";
df = "df --human-readable --type=ext4 --total";
du = "du --human-readable --summarize";
jis =
"recode shift_jis..utf8"; # Easily convert shift_jis-encoded files to utf8
utf16 =
"recode utf16..utf8"; # Rarely, some files from Japan are utf16 instead
jis = "recode shift_jis..utf8"; # Easily convert shift_jis-encoded files to utf8
utf16 = "recode utf16..utf8"; # Rarely, some files from Japan are utf16 instead
jp = "LANG=ja_JP.UTF-8 LC_ALL=ja_JP.UTF-8";
c = "tput reset"; # Clear the terminal completely
@ -74,65 +67,67 @@
};
};
home-manager.sharedModules = [{
xdg.configFile."fish/config.fish".text = ''
set -U fish_greeting ""
home-manager.sharedModules = [
{
xdg.configFile."fish/config.fish".text = ''
set -U fish_greeting ""
export PATH="$HOME/.deno/bin:$HOME/.cargo/bin:$HOME/.yarn/bin:$HOME/.local/bin:$HOME/.go/bin:$PATH"
export GOPATH="$HOME/.go"
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
export TERMCMD="kitty --single-instance"
export PATH="$HOME/.deno/bin:$HOME/.cargo/bin:$HOME/.yarn/bin:$HOME/.local/bin:$HOME/.go/bin:$PATH"
export GOPATH="$HOME/.go"
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
export TERMCMD="kitty --single-instance"
# Required to make gpg-agent work in cases like git commit
export GPG_TTY=(tty)
# Required to make gpg-agent work in cases like git commit
export GPG_TTY=(tty)
# Add color to man pages
set -x -U LESS_TERMCAP_md (printf "\e[01;31m")
set -x -U LESS_TERMCAP_me (printf "\e[0m")
set -x -U LESS_TERMCAP_se (printf "\e[0m")
set -x -U LESS_TERMCAP_so (printf "\e[01;44;30m")
set -x -U LESS_TERMCAP_ue (printf "\e[0m")
set -x -U LESS_TERMCAP_us (printf "\e[01;32m")
# Add color to man pages
set -x -U LESS_TERMCAP_md (printf "\e[01;31m")
set -x -U LESS_TERMCAP_me (printf "\e[0m")
set -x -U LESS_TERMCAP_se (printf "\e[0m")
set -x -U LESS_TERMCAP_so (printf "\e[01;44;30m")
set -x -U LESS_TERMCAP_ue (printf "\e[0m")
set -x -U LESS_TERMCAP_us (printf "\e[01;32m")
# Always use the default keybindings in fish
fish_default_key_bindings
# Always use the default keybindings in fish
fish_default_key_bindings
# Convert unnecessarily large wav files to flac
function wav2flac
set ORIGINAL_SIZE (du -hs | cut -f1)
# Convert unnecessarily large wav files to flac
function wav2flac
set ORIGINAL_SIZE (du -hs | cut -f1)
fd -e wav -x ffmpeg -i "{}" -loglevel quiet -stats "{.}.flac"
fd -e wav -X trash
fd -e wav -x ffmpeg -i "{}" -loglevel quiet -stats "{.}.flac"
fd -e wav -X trash
set NEW_SIZE (du -hs | cut -f1)
set NEW_SIZE (du -hs | cut -f1)
echo "Done. Reduced file size from $ORIGINAL_SIZE to $NEW_SIZE"
end
echo "Done. Reduced file size from $ORIGINAL_SIZE to $NEW_SIZE"
end
# Convert wav/flac to opus
function opus
set ORIGINAL_SIZE (du -hs | cut -f1)
# Convert wav/flac to opus
function opus
set ORIGINAL_SIZE (du -hs | cut -f1)
fd -e wav -e flac -x ffmpeg -i "{}" -c:a libopus -b:a 128K -loglevel quiet -stats "{.}.opus"
fd -e wav -e flac -X rm -I
fd -e wav -e flac -x ffmpeg -i "{}" -c:a libopus -b:a 128K -loglevel quiet -stats "{.}.opus"
fd -e wav -e flac -X rm -I
set NEW_SIZE (du -hs | cut -f1)
set NEW_SIZE (du -hs | cut -f1)
echo "Done. Reduced file size from $ORIGINAL_SIZE to $NEW_SIZE"
end
echo "Done. Reduced file size from $ORIGINAL_SIZE to $NEW_SIZE"
end
# Always use kitty ssh since it's our default terminal
if string match -qe -- "/dev/pts/" (tty)
alias ssh="kitty +kitten ssh"
end
# Always use kitty ssh since it's our default terminal
if string match -qe -- "/dev/pts/" (tty)
alias ssh="kitty +kitten ssh"
end
if status is-login
if test -z "$DISPLAY" -a "$XDG_VTNR" = 1
exec Hyprland
end
end
'';
}];
if status is-login
if test -z "$DISPLAY" -a "$XDG_VTNR" = 1
exec Hyprland
end
end
'';
}
];
programs.starship = {
enable = true;

View File

@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
fonts = {
enableDefaultFonts = true;
fonts = with pkgs; [
@ -15,12 +13,12 @@
];
fontconfig = {
defaultFonts = {
serif = [ "Noto Serif CJK JP" "Noto Serif" ];
sansSerif = [ "Noto Sans CJK JP" "Noto Sans" ];
monospace = [ "Noto Mono CJK JP" "Noto Mono" ];
serif = ["Noto Serif CJK JP" "Noto Serif"];
sansSerif = ["Noto Sans CJK JP" "Noto Sans"];
monospace = ["Noto Mono CJK JP" "Noto Mono"];
};
allowBitmaps = false;
hinting = { style = "hintfull"; };
hinting = {style = "hintfull";};
};
};
}

View File

@ -1,61 +1,60 @@
{ pkgs, ... }:
{pkgs, ...}: {
environment.systemPackages = with pkgs; [tig git];
{
home-manager.sharedModules = [
{
xdg.configFile."tig/config".text = ''
color cursor black green bold
color title-focus black blue bold
color title-blur black blue bold
'';
environment.systemPackages = with pkgs; [ tig git ];
programs.git = {
enable = true;
home-manager.sharedModules = [{
xdg.configFile."tig/config".text = ''
color cursor black green bold
color title-focus black blue bold
color title-blur black blue bold
'';
extraConfig = {
include.path = "~/.gituser";
commit.gpgsign = true;
programs.git = {
enable = true;
core = {
editor = "nvim";
autocrlf = false;
quotePath = false;
};
extraConfig = {
include.path = "~/.gituser";
commit.gpgsign = true;
web.browser = "librewolf";
push.default = "simple";
branch.autosetuprebase = "always";
init.defaultBranch = "master";
rerere.enabled = true;
color.ui = true;
core = {
editor = "nvim";
autocrlf = false;
quotePath = false;
alias = {
contrib = "shortlog -n -s";
remotes = "remote -v";
praise = "blame";
verify = "log --show-signature";
};
"color \"diff-highlight\"" = {
oldNormal = "red bold";
oldHighlight = "red bold";
newNormal = "green bold";
newHighlight = "green bold";
};
"color \"diff\"" = {
meta = "yellow";
frag = "magenta bold";
commit = "yellow bold";
old = "red bold";
new = "green bold";
whitespace = "red reverse";
};
};
web.browser = "librewolf";
push.default = "simple";
branch.autosetuprebase = "always";
init.defaultBranch = "master";
rerere.enabled = true;
color.ui = true;
alias = {
contrib = "shortlog -n -s";
remotes = "remote -v";
praise = "blame";
verify = "log --show-signature";
};
"color \"diff-highlight\"" = {
oldNormal = "red bold";
oldHighlight = "red bold";
newNormal = "green bold";
newHighlight = "green bold";
};
"color \"diff\"" = {
meta = "yellow";
frag = "magenta bold";
commit = "yellow bold";
old = "red bold";
new = "green bold";
whitespace = "red reverse";
};
diff-so-fancy.enable = true;
};
diff-so-fancy.enable = true;
};
}];
}
];
}

View File

@ -1,25 +1,27 @@
{
home-manager.sharedModules = [{
programs.gpg = {
enable = true;
# homedir = "${config.xdg.dataHome}/gnupg"
settings = {
personal-digest-preferences = "SHA512";
cert-digest-algo = "SHA512";
cipher-algo = "AES256";
default-preference-list = "SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed";
personal-cipher-preferences = "TWOFISH CAMELLIA256 AES 3DES";
throw-keyids = true;
keyid-format = "0xlong";
with-fingerprint = true;
home-manager.sharedModules = [
{
programs.gpg = {
enable = true;
# homedir = "${config.xdg.dataHome}/gnupg"
settings = {
personal-digest-preferences = "SHA512";
cert-digest-algo = "SHA512";
cipher-algo = "AES256";
default-preference-list = "SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed";
personal-cipher-preferences = "TWOFISH CAMELLIA256 AES 3DES";
throw-keyids = true;
keyid-format = "0xlong";
with-fingerprint = true;
};
};
};
services.gpg-agent = {
enable = true;
pinentryFlavor = "curses";
defaultCacheTtl = 43200;
maxCacheTtl = 43200;
};
}];
services.gpg-agent = {
enable = true;
pinentryFlavor = "curses";
defaultCacheTtl = 43200;
maxCacheTtl = 43200;
};
}
];
}

View File

@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.hyprland.enable = true;
services.udisks2 = {
enable = true;
@ -14,238 +12,240 @@
services.xserver = {
enable = true;
displayManager.lightdm.enable = false;
excludePackages = [ pkgs.xterm ];
excludePackages = [pkgs.xterm];
};
home-manager.sharedModules = [{
xdg.configFile."hypr/hyprland.conf".text = ''
env=XCURSOR_SIZE,24
env=BROWSER,librewolf
env=GTK_IM_MODULE,fcitx
env=QT_IM_MODULE,fcitx
env=XMODIFIERS,@im=fcitx
env=SDL_IM_MODULE,fcitx
env=GLFW_IM_MODULE,ibus
monitor=,preferred,auto,1
home-manager.sharedModules = [
{
xdg.configFile."hypr/hyprland.conf".text = ''
env=XCURSOR_SIZE,24
env=BROWSER,librewolf
env=GTK_IM_MODULE,fcitx
env=QT_IM_MODULE,fcitx
env=XMODIFIERS,@im=fcitx
env=SDL_IM_MODULE,fcitx
env=GLFW_IM_MODULE,ibus
monitor=,preferred,auto,1
exec-once = swww init
exec-once = wpctl set-volume @DEFAULT_AUDIO_SINK@ 20%
exec-once = sleep 0.5 && waybar
exec-once = fcitx5 # Japanese input support
exec-once = mullvad-vpn
exec-once = wl-paste -p --watch wl-copy -pc # Disable middle click paste
exec-once = ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1
exec-once = swww init
exec-once = wpctl set-volume @DEFAULT_AUDIO_SINK@ 20%
exec-once = sleep 0.5 && waybar
exec-once = fcitx5 # Japanese input support
exec-once = mullvad-vpn
exec-once = wl-paste -p --watch wl-copy -pc # Disable middle click paste
exec-once = ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1
input {
kb_layout = us
accel_profile = flat
follow_mouse = 1
mouse_refocus = 0
sensitivity = 0
touchpad {
input {
kb_layout = us
accel_profile = flat
follow_mouse = 1
mouse_refocus = 0
sensitivity = 0
touchpad {
natural_scroll = yes
disable_while_typing = no
}
}
general {
gaps_in = 0
gaps_out = -1
border_size = 0
col.active_border = rgba(f4bf75ee) rgba(fd971fee) 45deg
col.inactive_border = rgba(49483eaa)
layout = master
}
decoration {
rounding = 0
blur = yes
blur_size = 3
blur_passes = 1
blur_new_optimizations = yes
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
animations {
enabled = yes
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default, slidevert
animation = specialWorkspace, 1, 6, default, fade
}
dwindle {
preserve_split = yes
no_gaps_when_only = yes
special_scale_factor = 1
}
master {
new_is_master = yes
new_on_top = yes
mfact = 0.65
special_scale_factor = 1
no_gaps_when_only = yes
}
gestures {
workspace_swipe = yes
}
device:synps/2-synaptics-touchpad {
sensitivity = 0.75
accel_profile = flat
natural_scroll = yes
disable_while_typing = no
}
}
general {
gaps_in = 0
gaps_out = -1
border_size = 0
col.active_border = rgba(f4bf75ee) rgba(fd971fee) 45deg
col.inactive_border = rgba(49483eaa)
layout = master
}
device:tpps/2-elan-trackpoint {
sensitivity = 0.5
accel_profile = flat
}
decoration {
rounding = 0
blur = yes
blur_size = 3
blur_passes = 1
blur_new_optimizations = yes
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
binds {
allow_workspace_cycles = yes
}
animations {
enabled = yes
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default, slidevert
animation = specialWorkspace, 1, 6, default, fade
}
bind = SUPER_SHIFT, Return, exec, kitty
bind = SUPER, Q, killactive,
bind = SUPER, P, exec, grim && dunstify Screenshot Captured.
bind = , Print, exec, grimblast copy area
bind = SUPER_ALT, delete, exit
bind = SUPER, V, togglefloating,
bind = SUPER, V, centerwindow,
bind = SUPER, O, exec, killall .waybar-wrapped || waybar
bind = SUPER, X, pin
bind = SUPER, F, fullscreen, 1
bind = SUPER_SHIFT, F, fullscreen
bind = SUPER, bracketright, changegroupactive, f
bind = SUPER, bracketleft, changegroupactive, b
bind = SUPER, S, togglespecialworkspace
bind = SUPER_SHIFT, S, movetoworkspace, special
bind = SUPER_SHIFT, S, focuscurrentorlast
bind = SUPER, F1, exec, killall rofi || rofi -show drun
bind = SUPER, F2, togglespecialworkspace
dwindle {
preserve_split = yes
no_gaps_when_only = yes
special_scale_factor = 1
}
bind = SUPER, Return, layoutmsg, swapwithmaster master
bind = SUPER, J, layoutmsg, cyclenext
bind = SUPER, K, layoutmsg, cycleprev
bind = SUPER_SHIFT, J, layoutmsg, swapnext
bind = SUPER_SHIFT, K, layoutmsg, swapprev
bind = SUPER, C, layoutmsg, orientationtop
bind = SUPER_SHIFT, C, layoutmsg, orientationleft
bind = SUPER, H, layoutmsg, addmaster
bind = SUPER, L, layoutmsg, removemaster
bind = SUPER_SHIFT, H, splitratio, -0.05
bind = SUPER_SHIFT, L, splitratio, +0.05
master {
new_is_master = yes
new_on_top = yes
mfact = 0.65
special_scale_factor = 1
no_gaps_when_only = yes
}
bind = SUPER, grave, workspace, previous
bind = SUPER, 1, workspace, 1
bind = SUPER, 2, workspace, 2
bind = SUPER, 3, workspace, 3
bind = SUPER, 4, workspace, 4
bind = SUPER, 5, workspace, 5
bind = SUPER, 6, workspace, 6
bind = SUPER, 7, workspace, 7
bind = SUPER, 8, workspace, 8
bind = SUPER, 9, workspace, 9
bind = SUPER, 0, workspace, 10
bind = SUPER_SHIFT, 1, movetoworkspace, 1
bind = SUPER_SHIFT, 2, movetoworkspace, 2
bind = SUPER_SHIFT, 3, movetoworkspace, 3
bind = SUPER_SHIFT, 4, movetoworkspace, 4
bind = SUPER_SHIFT, 5, movetoworkspace, 5
bind = SUPER_SHIFT, 6, movetoworkspace, 6
bind = SUPER_SHIFT, 7, movetoworkspace, 7
bind = SUPER_SHIFT, 8, movetoworkspace, 8
bind = SUPER_SHIFT, 9, movetoworkspace, 9
bind = SUPER_SHIFT, 0, movetoworkspace, 10
bind = SUPER_CTRL, 1, exec, ~/.config/hypr/tags.sh 1
bind = SUPER_CTRL, 2, exec, ~/.config/hypr/tags.sh 2
bind = SUPER_CTRL, 3, exec, ~/.config/hypr/tags.sh 3
bind = SUPER_CTRL, 4, exec, ~/.config/hypr/tags.sh 4
bind = SUPER_CTRL, 5, exec, ~/.config/hypr/tags.sh 5
bind = SUPER_CTRL, 6, exec, ~/.config/hypr/tags.sh 6
bind = SUPER_CTRL, 7, exec, ~/.config/hypr/tags.sh 7
bind = SUPER_CTRL, 8, exec, ~/.config/hypr/tags.sh 8
bind = SUPER_CTRL, 9, exec, ~/.config/hypr/tags.sh 9
bind = SUPER_CTRL, 0, exec, ~/.config/hypr/tags.sh 10
gestures {
workspace_swipe = yes
}
layerrule = blur,waybar
layerrule = blur,rofi
device:synps/2-synaptics-touchpad {
sensitivity = 0.75
accel_profile = flat
natural_scroll = yes
disable_while_typing = no
}
windowrulev2 = nomaxsize,class:^(winecfg\.exe)$
windowrulev2 = opaque,class:^(kitty)$
device:tpps/2-elan-trackpoint {
sensitivity = 0.5
accel_profile = flat
}
# Scroll through existing workspaces with super + scroll
bind = SUPER, mouse_down, workspace, e+1
bind = SUPER, mouse_up, workspace, e-1
binds {
allow_workspace_cycles = yes
}
# Move/resize windows with super + LMB/RMB and dragging
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
bind = SUPER_SHIFT, Return, exec, kitty
bind = SUPER, Q, killactive,
bind = SUPER, P, exec, grim && dunstify Screenshot Captured.
bind = , Print, exec, grimblast copy area
bind = SUPER_ALT, delete, exit
bind = SUPER, V, togglefloating,
bind = SUPER, V, centerwindow,
bind = SUPER, O, exec, killall .waybar-wrapped || waybar
bind = SUPER, X, pin
bind = SUPER, F, fullscreen, 1
bind = SUPER_SHIFT, F, fullscreen
bind = SUPER, bracketright, changegroupactive, f
bind = SUPER, bracketleft, changegroupactive, b
bind = SUPER, S, togglespecialworkspace
bind = SUPER_SHIFT, S, movetoworkspace, special
bind = SUPER_SHIFT, S, focuscurrentorlast
bind = SUPER, F1, exec, killall rofi || rofi -show drun
bind = SUPER, F2, togglespecialworkspace
# Change volume with keys
# TODO: Change notification once at 0/100%
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && notify-send -t 2000 "Muted" "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)"
bindl=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ && notify-send -t 2000 "Raised volume to" "$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | tail -c 3)%"
bindl=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && notify-send -t 2000 "Lowered volume to" "$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | tail -c 3)%"
bindl=, XF86MonBrightnessDown, exec, brightnessctl set 5%- && notify-send -t 2000 "Decreased brightness to" "$(brightnessctl get)"
bindl=, XF86MonBrightnessUp, exec, brightnessctl set +5% && notify-send -t 2000 "Increased brightness to" "$(brightnessctl get)"
bind = SUPER, Return, layoutmsg, swapwithmaster master
bind = SUPER, J, layoutmsg, cyclenext
bind = SUPER, K, layoutmsg, cycleprev
bind = SUPER_SHIFT, J, layoutmsg, swapnext
bind = SUPER_SHIFT, K, layoutmsg, swapprev
bind = SUPER, C, layoutmsg, orientationtop
bind = SUPER_SHIFT, C, layoutmsg, orientationleft
bind = SUPER, H, layoutmsg, addmaster
bind = SUPER, L, layoutmsg, removemaster
bind = SUPER_SHIFT, H, splitratio, -0.05
bind = SUPER_SHIFT, L, splitratio, +0.05
misc {
disable_hyprland_logo = yes
animate_manual_resizes = yes
animate_mouse_windowdragging = yes
focus_on_activate = yes
}
'';
xdg.configFile."hypr/tags.sh".source = ./tags.sh;
bind = SUPER, grave, workspace, previous
bind = SUPER, 1, workspace, 1
bind = SUPER, 2, workspace, 2
bind = SUPER, 3, workspace, 3
bind = SUPER, 4, workspace, 4
bind = SUPER, 5, workspace, 5
bind = SUPER, 6, workspace, 6
bind = SUPER, 7, workspace, 7
bind = SUPER, 8, workspace, 8
bind = SUPER, 9, workspace, 9
bind = SUPER, 0, workspace, 10
bind = SUPER_SHIFT, 1, movetoworkspace, 1
bind = SUPER_SHIFT, 2, movetoworkspace, 2
bind = SUPER_SHIFT, 3, movetoworkspace, 3
bind = SUPER_SHIFT, 4, movetoworkspace, 4
bind = SUPER_SHIFT, 5, movetoworkspace, 5
bind = SUPER_SHIFT, 6, movetoworkspace, 6
bind = SUPER_SHIFT, 7, movetoworkspace, 7
bind = SUPER_SHIFT, 8, movetoworkspace, 8
bind = SUPER_SHIFT, 9, movetoworkspace, 9
bind = SUPER_SHIFT, 0, movetoworkspace, 10
bind = SUPER_CTRL, 1, exec, ~/.config/hypr/tags.sh 1
bind = SUPER_CTRL, 2, exec, ~/.config/hypr/tags.sh 2
bind = SUPER_CTRL, 3, exec, ~/.config/hypr/tags.sh 3
bind = SUPER_CTRL, 4, exec, ~/.config/hypr/tags.sh 4
bind = SUPER_CTRL, 5, exec, ~/.config/hypr/tags.sh 5
bind = SUPER_CTRL, 6, exec, ~/.config/hypr/tags.sh 6
bind = SUPER_CTRL, 7, exec, ~/.config/hypr/tags.sh 7
bind = SUPER_CTRL, 8, exec, ~/.config/hypr/tags.sh 8
bind = SUPER_CTRL, 9, exec, ~/.config/hypr/tags.sh 9
bind = SUPER_CTRL, 0, exec, ~/.config/hypr/tags.sh 10
home.file.".icons/default/index.theme".text = ''
[icon theme]
Inherits=phinger-cursors
'';
layerrule = blur,waybar
layerrule = blur,rofi
windowrulev2 = nomaxsize,class:^(winecfg\.exe)$
windowrulev2 = opaque,class:^(kitty)$
# Scroll through existing workspaces with super + scroll
bind = SUPER, mouse_down, workspace, e+1
bind = SUPER, mouse_up, workspace, e-1
# Move/resize windows with super + LMB/RMB and dragging
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
# Change volume with keys
# TODO: Change notification once at 0/100%
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && notify-send -t 2000 "Muted" "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)"
bindl=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ && notify-send -t 2000 "Raised volume to" "$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | tail -c 3)%"
bindl=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && notify-send -t 2000 "Lowered volume to" "$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | tail -c 3)%"
bindl=, XF86MonBrightnessDown, exec, brightnessctl set 5%- && notify-send -t 2000 "Decreased brightness to" "$(brightnessctl get)"
bindl=, XF86MonBrightnessUp, exec, brightnessctl set +5% && notify-send -t 2000 "Increased brightness to" "$(brightnessctl get)"
misc {
disable_hyprland_logo = yes
animate_manual_resizes = yes
animate_mouse_windowdragging = yes
focus_on_activate = yes
}
'';
xdg.configFile."hypr/tags.sh".source = ./tags.sh;
home.file.".icons/default/index.theme".text = ''
[icon theme]
Inherits=phinger-cursors
'';
xresources.properties = {
"Xft.hinting" = true;
"Xft.antialias" = true;
"Xft.autohint" = false;
"Xft.lcdfilter" = "lcddefault";
"Xft.hintstyle" = "hintfull";
"Xft.rgba" = "rgb";
};
gtk = {
enable = true;
cursorTheme = {
package = pkgs.phinger-cursors;
name = "phinger-cursors";
xresources.properties = {
"Xft.hinting" = true;
"Xft.antialias" = true;
"Xft.autohint" = false;
"Xft.lcdfilter" = "lcddefault";
"Xft.hintstyle" = "hintfull";
"Xft.rgba" = "rgb";
};
gtk3.extraConfig = {
gtk-decoration-layout = "menu:";
gtk-xft-antialias = 1;
gtk-xft-hinting = 1;
gtk-xft-hintstyle = "hintfull";
gtk-xft-rgba = "rgb";
gtk-recent-files-enabled = false;
gtk = {
enable = true;
cursorTheme = {
package = pkgs.phinger-cursors;
name = "phinger-cursors";
};
gtk3.extraConfig = {
gtk-decoration-layout = "menu:";
gtk-xft-antialias = 1;
gtk-xft-hinting = 1;
gtk-xft-hintstyle = "hintfull";
gtk-xft-rgba = "rgb";
gtk-recent-files-enabled = false;
};
iconTheme = {
package = pkgs.fluent-icon-theme;
name = "Fluent-dark";
};
};
iconTheme = {
package = pkgs.fluent-icon-theme;
name = "Fluent-dark";
};
};
services.udiskie.enable = true;
}];
services.udiskie.enable = true;
}
];
}

View File

@ -1,28 +1,28 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
environment.systemPackages = [
(pkgs.callPackage ../../packages/joshuto { })
(pkgs.callPackage ../../packages/joshuto {})
];
home-manager.sharedModules = [{
xdg.configFile."joshuto/joshuto.toml".text = ''
[display]
automatically_count_files = true
show_borders = false
show_hidden = true
line_number_style = "absolute"
collapse_preview = false
home-manager.sharedModules = [
{
xdg.configFile."joshuto/joshuto.toml".text = ''
[display]
automatically_count_files = true
show_borders = false
show_hidden = true
line_number_style = "absolute"
collapse_preview = false
[preview]
max_preview_size = 10000000000
preview_script = "~/.config/joshuto/preview.sh"
preview_shown_hook_script = "~/.config/joshuto/kitty-show.sh"
preview_removed_hook_script = "~/.config/joshuto/kitty-remove.sh"
'';
[preview]
max_preview_size = 10000000000
preview_script = "~/.config/joshuto/preview.sh"
preview_shown_hook_script = "~/.config/joshuto/kitty-show.sh"
preview_removed_hook_script = "~/.config/joshuto/kitty-remove.sh"
'';
xdg.configFile."joshuto/preview.sh".source = ./preview.sh;
xdg.configFile."joshuto/kitty-show.sh".source = ./kitty-show.sh;
xdg.configFile."joshuto/kitty-remove.sh".source = ./kitty-remove.sh;
}];
xdg.configFile."joshuto/preview.sh".source = ./preview.sh;
xdg.configFile."joshuto/kitty-show.sh".source = ./kitty-show.sh;
xdg.configFile."joshuto/kitty-remove.sh".source = ./kitty-remove.sh;
}
];
}

View File

@ -1,30 +1,32 @@
{
home-manager.sharedModules = [{
programs.kitty = {
enable = true;
home-manager.sharedModules = [
{
programs.kitty = {
enable = true;
settings = {
enable_audio_bell = false;
close_on_child_death = true;
cursor_blink_interval = 0;
settings = {
enable_audio_bell = false;
close_on_child_death = true;
cursor_blink_interval = 0;
open_url_with = "librewolf";
wayland_titlebar_color = "background";
open_url_with = "librewolf";
wayland_titlebar_color = "background";
allow_remote_control = true;
listen_on = "unix:/tmp/kitty";
dynamic_background_opacity = true;
allow_remote_control = true;
listen_on = "unix:/tmp/kitty";
dynamic_background_opacity = true;
window_padding_width = 5;
tab_bar_margin_width = 5;
window_padding_width = 5;
tab_bar_margin_width = 5;
};
};
};
xdg.configFile."kitty/diff.conf".text = ''
map d scroll_to next-page
map u scroll_to prev-page
map g scroll_to start
map G scroll_to end
'';
}];
xdg.configFile."kitty/diff.conf".text = ''
map d scroll_to next-page
map u scroll_to prev-page
map g scroll_to start
map G scroll_to end
'';
}
];
}

View File

@ -1,21 +1,23 @@
{
home-manager.sharedModules = [{
programs.librewolf = {
enable = true;
home-manager.sharedModules = [
{
programs.librewolf = {
enable = true;
settings = {
"middlemouse.paste" = false;
settings = {
"middlemouse.paste" = false;
"ui.use_activity_cursor" = true;
"ui.use_activity_cursor" = true;
"privacy.resistFingerprinting.letterboxing" = true;
"privacy.resistFingerprinting.letterboxing" = true;
"browser.download.useDownloadDir" = true;
"browser.tabs.insertAfterCurrent" = true;
"browser.toolbars.bookmarks.visibility" = "never";
"browser.download.useDownloadDir" = true;
"browser.tabs.insertAfterCurrent" = true;
"browser.toolbars.bookmarks.visibility" = "never";
"sidebar.position_start" = false;
"sidebar.position_start" = false;
};
};
};
}];
}
];
}

View File

@ -1,37 +1,36 @@
{ pkgs, ... }:
{
home-manager.sharedModules = [{
programs.mpv = {
enable = true;
config = {
screenshot-format = "png";
profile = "gpu-hq";
scale = "ewa_lanczossharp";
cscale = "ewa_lanczossharp";
video-sync = "display-resample";
interpolation = true;
tscale = "oversample";
sub-auto = "fuzzy";
sub-font = "Noto Sans CJK JP Medium";
sub-blur = 10;
sub-file-paths = "subs:subtitles:";
fullscreen = "yes";
title = "\${filename} - mpv";
script-opts =
"osc-title=\${filename},osc-boxalpha=150,osc-showfullscreen=no,osc-boxvideo=yes";
osc = "no";
osd-on-seek = "no";
osd-bar = "no";
osd-bar-w = 30;
osd-bar-h = "0.2";
osd-duration = 750;
really-quiet = "yes";
{pkgs, ...}: {
home-manager.sharedModules = [
{
programs.mpv = {
enable = true;
config = {
screenshot-format = "png";
profile = "gpu-hq";
scale = "ewa_lanczossharp";
cscale = "ewa_lanczossharp";
video-sync = "display-resample";
interpolation = true;
tscale = "oversample";
sub-auto = "fuzzy";
sub-font = "Noto Sans CJK JP Medium";
sub-blur = 10;
sub-file-paths = "subs:subtitles:";
fullscreen = "yes";
title = "\${filename} - mpv";
script-opts = "osc-title=\${filename},osc-boxalpha=150,osc-showfullscreen=no,osc-boxvideo=yes";
osc = "no";
osd-on-seek = "no";
osd-bar = "no";
osd-bar-w = 30;
osd-bar-h = "0.2";
osd-duration = 750;
really-quiet = "yes";
};
scripts = with pkgs.mpvScripts; [
mpris
thumbnail
];
};
scripts = with pkgs.mpvScripts; [
mpris
thumbnail
];
};
}];
}
];
}

View File

@ -1,151 +1,151 @@
{ pkgs, ... }:
{
home-manager.sharedModules = [{
services.mpd = {
enable = true;
musicDirectory = "/home/user/Music";
};
xdg.configFile."mpd/mpd.conf".text = ''
auto_update "yes"
'';
xdg.configFile."ncmpcpp/on-song-change.sh".source = ./on-song-change.sh;
programs.ncmpcpp = {
enable = true;
bindings = [
{
key = "mouse";
command = "dummy";
}
{
key = "h";
command = [ "previous_column" "jump_to_parent_directory" ];
}
{
key = "j";
command = "scroll_down";
}
{
key = "k";
command = "scroll_up";
}
{
key = "l";
command = [ "next_column" "enter_directory" "play_item" ];
}
{
key = "H";
command = [ "select_item" "scroll_down" ];
}
{
key = "J";
command = [ "move_sort_order_down" "move_selected_items_down" ];
}
{
key = "K";
command = [ "move_sort_order_up" "move_selected_items_up" ];
}
{
key = "L";
command = [ "select_item" "scroll_up" ];
}
{
key = "'";
command = "remove_selection";
}
{
key = "ctrl-u";
command = "page_up";
}
{
key = "ctrl-d";
command = "page_down";
}
{
key = "u";
command = "page_up";
}
{
key = "d";
command = "page_down";
}
{
key = "n";
command = "next_found_item";
}
{
key = "N";
command = "previous_found_item";
}
{
key = "t";
command = "next_screen";
}
{
key = "g";
command = "move_home";
}
{
key = "G";
command = "move_end";
}
{
key = "w";
command = "next";
}
{
key = "b";
command = "previous";
}
{
key = ";";
command = "seek_forward";
}
{
key = ",";
command = "seek_backward";
}
{
key = "f";
command = "apply_filter";
}
{
key = "i";
command = "select_item";
}
{
key = "x";
command = [
"delete_playlist_items"
"delete_browser_items"
"delete_stored_playlist"
];
}
{
key = "U";
command = "update_database";
}
{
key = "m";
command = "add_random_items";
}
];
settings = {
ncmpcpp_directory = "~/.config/ncmpcpp";
user_interface = "alternative";
autocenter_mode = "yes";
allow_for_physical_item_deletion = "no";
mouse_support = "no";
execute_on_song_change = "~/.config/ncmpcpp/on-song-change.sh";
mpd_crossfade_time = 3;
{pkgs, ...}: {
home-manager.sharedModules = [
{
services.mpd = {
enable = true;
musicDirectory = "/home/user/Music";
};
};
}];
environment.systemPackages = with pkgs; [ mpc-cli ];
xdg.configFile."mpd/mpd.conf".text = ''
auto_update "yes"
'';
xdg.configFile."ncmpcpp/on-song-change.sh".source = ./on-song-change.sh;
programs.ncmpcpp = {
enable = true;
bindings = [
{
key = "mouse";
command = "dummy";
}
{
key = "h";
command = ["previous_column" "jump_to_parent_directory"];
}
{
key = "j";
command = "scroll_down";
}
{
key = "k";
command = "scroll_up";
}
{
key = "l";
command = ["next_column" "enter_directory" "play_item"];
}
{
key = "H";
command = ["select_item" "scroll_down"];
}
{
key = "J";
command = ["move_sort_order_down" "move_selected_items_down"];
}
{
key = "K";
command = ["move_sort_order_up" "move_selected_items_up"];
}
{
key = "L";
command = ["select_item" "scroll_up"];
}
{
key = "'";
command = "remove_selection";
}
{
key = "ctrl-u";
command = "page_up";
}
{
key = "ctrl-d";
command = "page_down";
}
{
key = "u";
command = "page_up";
}
{
key = "d";
command = "page_down";
}
{
key = "n";
command = "next_found_item";
}
{
key = "N";
command = "previous_found_item";
}
{
key = "t";
command = "next_screen";
}
{
key = "g";
command = "move_home";
}
{
key = "G";
command = "move_end";
}
{
key = "w";
command = "next";
}
{
key = "b";
command = "previous";
}
{
key = ";";
command = "seek_forward";
}
{
key = ",";
command = "seek_backward";
}
{
key = "f";
command = "apply_filter";
}
{
key = "i";
command = "select_item";
}
{
key = "x";
command = [
"delete_playlist_items"
"delete_browser_items"
"delete_stored_playlist"
];
}
{
key = "U";
command = "update_database";
}
{
key = "m";
command = "add_random_items";
}
];
settings = {
ncmpcpp_directory = "~/.config/ncmpcpp";
user_interface = "alternative";
autocenter_mode = "yes";
allow_for_physical_item_deletion = "no";
mouse_support = "no";
execute_on_song_change = "~/.config/ncmpcpp/on-song-change.sh";
mpd_crossfade_time = 3;
};
};
}
];
environment.systemPackages = with pkgs; [mpc-cli];
}

View File

@ -1,90 +1,89 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.neovim.enable = true;
home-manager.sharedModules = [{
programs.neovim = {
enable = true;
extraConfig = ''
filetype plugin indent on
set undofile
set spell
set number
set linebreak
set clipboard=unnamedplus
set fileencoding=utf-8 " Ensure that we always save files as utf-8
set fileencodings=utf-8,sjis " Automatically open shiftjis files with their proper encoding
set spelllang=en_us,cjk " Don't show errors for CJK characters
set noshowmode " Disable the --MODE-- text (enable if not using the status line)
set mouse=a
set ignorecase " By default use case-insensitive search (combine with smartcase)
set smartcase " Make search case-sensitive when using capital letters
set scrolloff=1 " The minimal number of rows to show when scrolling up/down
set sidescrolloff=5 " The minimal number of columns to show when scrolling left/right
set tabstop=4 " Show a tab character as 4 spaces
set softtabstop=0 " Edit soft tabs as if they're regular spaces
set shiftwidth=4 " Make autoindent appear as 4 spaces
home-manager.sharedModules = [
{
programs.neovim = {
enable = true;
extraConfig = ''
filetype plugin indent on
set undofile
set spell
set number
set linebreak
set clipboard=unnamedplus
set fileencoding=utf-8 " Ensure that we always save files as utf-8
set fileencodings=utf-8,sjis " Automatically open shiftjis files with their proper encoding
set spelllang=en_us,cjk " Don't show errors for CJK characters
set noshowmode " Disable the --MODE-- text (enable if not using the status line)
set mouse=a
set ignorecase " By default use case-insensitive search (combine with smartcase)
set smartcase " Make search case-sensitive when using capital letters
set scrolloff=1 " The minimal number of rows to show when scrolling up/down
set sidescrolloff=5 " The minimal number of columns to show when scrolling left/right
set tabstop=4 " Show a tab character as 4 spaces
set softtabstop=0 " Edit soft tabs as if they're regular spaces
set shiftwidth=4 " Make autoindent appear as 4 spaces
set foldmethod=indent
set foldlevelstart=99
set foldmethod=indent
set foldlevelstart=99
map <MiddleMouse> <Nop>
imap <MiddleMouse> <Nop>
map <2-MiddleMouse> <Nop>
imap <2-MiddleMouse> <Nop>
map <3-MiddleMouse> <Nop>
imap <3-MiddleMouse> <Nop>
map <4-MiddleMouse> <Nop>
imap <4-MiddleMouse> <Nop>
map <MiddleMouse> <Nop>
imap <MiddleMouse> <Nop>
map <2-MiddleMouse> <Nop>
imap <2-MiddleMouse> <Nop>
map <3-MiddleMouse> <Nop>
imap <3-MiddleMouse> <Nop>
map <4-MiddleMouse> <Nop>
imap <4-MiddleMouse> <Nop>
highlight Search ctermbg=240 ctermfg=255
highlight IncSearch ctermbg=255 ctermfg=240
highlight Search ctermbg=240 ctermfg=255
highlight IncSearch ctermbg=255 ctermfg=240
let mapleader = ' '
nnoremap <silent> <leader>e :set nu!<CR>
nnoremap <silent> <leader>t :OverCommandLine<CR>%s/
nnoremap <silent> <leader>a :NvimTreeFocus<CR>
nnoremap <silent> <leader>f :Files<CR>
nnoremap <silent> <leader>g :set hlsearch!<CR>
nnoremap <silent> <leader>j :Buffers<CR>
nnoremap <silent> <leader>l :Rg<CR>
nnoremap <silent> <leader>; <C-w>w
vnoremap <C-s> y:silent !notify-send -t 4000 "" "$(tango '<C-r>0')"<CR>:<Esc>
let mapleader = ' '
nnoremap <silent> <leader>e :set nu!<CR>
nnoremap <silent> <leader>t :OverCommandLine<CR>%s/
nnoremap <silent> <leader>a :NvimTreeFocus<CR>
nnoremap <silent> <leader>f :Files<CR>
nnoremap <silent> <leader>g :set hlsearch!<CR>
nnoremap <silent> <leader>j :Buffers<CR>
nnoremap <silent> <leader>l :Rg<CR>
nnoremap <silent> <leader>; <C-w>w
vnoremap <C-s> y:silent !notify-send -t 4000 "" "$(tango '<C-r>0')"<CR>:<Esc>
autocmd BufNewFile,BufRead *.ecr setlocal syntax=html
autocmd BufWritePre,FileWritePre * silent! call mkdir(expand('<afile>:p:h'), 'p')
'';
plugins = with pkgs.vimPlugins; [
{
plugin = nvim-tree-lua;
type = "lua";
config = ''
require("nvim-tree").setup()
'';
}
{
plugin = indent-blankline-nvim;
type = "lua";
config = ''
require("indent_blankline").setup()
'';
}
{
plugin = gitsigns-nvim;
type = "lua";
config = ''
require('gitsigns').setup()
'';
}
{
plugin = nvim-web-devicons;
type = "lua";
}
{
plugin = nvim-lspconfig;
type = "lua";
config = "
autocmd BufNewFile,BufRead *.ecr setlocal syntax=html
autocmd BufWritePre,FileWritePre * silent! call mkdir(expand('<afile>:p:h'), 'p')
'';
plugins = with pkgs.vimPlugins; [
{
plugin = nvim-tree-lua;
type = "lua";
config = ''
require("nvim-tree").setup()
'';
}
{
plugin = indent-blankline-nvim;
type = "lua";
config = ''
require("indent_blankline").setup()
'';
}
{
plugin = gitsigns-nvim;
type = "lua";
config = ''
require('gitsigns').setup()
'';
}
{
plugin = nvim-web-devicons;
type = "lua";
}
{
plugin = nvim-lspconfig;
type = "lua";
config = "
local lspconfig = require('lspconfig')
lspconfig.nil_ls.setup {}
lspconfig.rust_analyzer.setup {}
@ -113,68 +112,69 @@
end,
})
";
}
{
plugin = nvim-base16;
type = "lua";
config = "vim.cmd('colorscheme base16-monokai')";
}
{
plugin = lualine-nvim;
type = "lua";
config = ''
require('lualine').setup {
sections = { lualine_c = {'%f'} }
}
'';
}
{
plugin = git-blame-nvim;
type = "lua";
}
{
plugin = comment-nvim;
type = "lua";
config = ''require('Comment').setup()'';
}
{
plugin = plenary-nvim;
type = "lua";
}
{
plugin = auto-save-nvim;
type = "lua";
config = ''require("auto-save").setup()'';
}
{
plugin = vimtex;
config = ''
" Disable all keybinds so we can define our own
let g:vimtex_mappings_enabled = 0
let g:vimtex_imaps_enabled = 0
let g:vimtex_view_method = 'zathura'
let g:vimtex_compiler_latexmk = {'build_dir': '.tex'}
}
{
plugin = nvim-base16;
type = "lua";
config = "vim.cmd('colorscheme base16-monokai')";
}
{
plugin = lualine-nvim;
type = "lua";
config = ''
require('lualine').setup {
sections = { lualine_c = {'%f'} }
}
'';
}
{
plugin = git-blame-nvim;
type = "lua";
}
{
plugin = comment-nvim;
type = "lua";
config = ''require('Comment').setup()'';
}
{
plugin = plenary-nvim;
type = "lua";
}
{
plugin = auto-save-nvim;
type = "lua";
config = ''require("auto-save").setup()'';
}
{
plugin = vimtex;
config = ''
" Disable all keybinds so we can define our own
let g:vimtex_mappings_enabled = 0
let g:vimtex_imaps_enabled = 0
let g:vimtex_view_method = 'zathura'
let g:vimtex_compiler_latexmk = {'build_dir': '.tex'}
" Set the normal keybinds
nnoremap <localleader>f <plug>(vimtex-view)
nnoremap <localleader>g <plug>(vimtex-compile)
nnoremap <localleader>d <plug>(vimtex-env-delete)
nnoremap <localleader>c <plug>(vimtex-env-change)
'';
}
fzf-vim
vim-caddyfile
vim-graphql
vim-pug
vim-prisma
vim-javascript
vim-jsx-pretty
vim-vue
vim-over
vim-endwise
rust-vim
neoformat
];
};
}];
" Set the normal keybinds
nnoremap <localleader>f <plug>(vimtex-view)
nnoremap <localleader>g <plug>(vimtex-compile)
nnoremap <localleader>d <plug>(vimtex-env-delete)
nnoremap <localleader>c <plug>(vimtex-env-change)
'';
}
fzf-vim
vim-caddyfile
vim-graphql
vim-pug
vim-prisma
vim-javascript
vim-jsx-pretty
vim-vue
vim-over
vim-endwise
rust-vim
neoformat
];
};
}
];
}

View File

@ -1,7 +1,5 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
services.ratbagd.enable = true;
environment.systemPackages = [ pkgs.piper ];
environment.systemPackages = [pkgs.piper];
}

View File

@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
services.pipewire = {
enable = true;

View File

@ -1,141 +1,141 @@
{ pkgs, ... }:
{pkgs, ...}: {
home-manager.sharedModules = [
{
programs.qutebrowser = {
enable = true;
package = pkgs.qutebrowser-qt6;
{
home-manager.sharedModules = [{
programs.qutebrowser = {
enable = true;
package = pkgs.qutebrowser-qt6;
settings = {
confirm_quit = [
"multiple-tabs"
"downloads"
];
settings = {
confirm_quit = [
"multiple-tabs"
"downloads"
];
session.lazy_restore = true;
session.lazy_restore = true;
tabs = {
show = "multiple";
mousewheel_switching = false;
last_close = "close";
new_position.unrelated = "next";
};
tabs = {
show = "multiple";
mousewheel_switching = false;
last_close = "close";
new_position.unrelated = "next";
content = {
persistent_storage = true;
notifications.enabled = true;
register_protocol_handler = true;
mute = true;
headers.accept_language = "ja-JP,en-US";
};
editor.command = ["kitty" "-e" "nvim" "{}"];
};
content = {
persistent_storage = true;
notifications.enabled = true;
register_protocol_handler = true;
mute = true;
headers.accept_language = "ja-JP,en-US";
keyBindings = {
normal = {
d = "scroll-page 0 0.5";
u = "scroll-page 0 -0.5";
D = "scroll-page 0 0.5";
U = "scroll-page 0 -0.5";
"<Alt+Left>" = "back";
"<Alt+Right>" = "forward";
"<Ctrl+Shift+Tab>" = "tab-prev";
"<Ctrl+Tab>" = "tab-next";
J = "tab-prev";
K = "tab-next";
"<F12>" = "devtools";
zb = "bookmark-del";
x = "tab-close";
X = "undo";
st = "config-cycle tabs.show multiple switching";
sTh = "set tabs.position left";
sTj = "set tabs.position bottom";
sTk = "set tabs.position top";
sTl = "set tabs.position right";
};
};
editor.command = [ "kitty" "-e" "nvim" "{}" ];
extraConfig = ''
# Mute tabs by default
from qutebrowser.mainwindow import tabwidget
tabwidget.TabWidget.MUTE_STRING = ""
tabwidget.TabWidget.AUDIBLE_STRING = "[A]"
# Use ranger as the file selector
c.fileselect.handler = 'external'
c.fileselect.folder.command = ['kitty', '-e', 'ranger', '--choosedir={}']
c.fileselect.multiple_files.command = ['kitty', '-e', 'ranger', '--choosefiles={}']
c.fileselect.single_file.command = ['kitty', '-e', 'ranger', '--choosefile={}']
# Better context menu colors
c.colors.contextmenu.disabled.fg = '#808080'
c.colors.contextmenu.menu.bg = '#353535'
c.colors.contextmenu.menu.fg = '#ffffff'
c.colors.contextmenu.selected.bg = '#909090'
# Chromium flags
c.qt.args = ["disable-backing-store-limit", "enable-accelerated-video-decode", "disable-gpu-driver-bug-workarounds"]
c.qt.chromium.low_end_device_mode = 'never'
# Download settings
c.downloads.location.directory = "$HOME/Downloads"
c.downloads.location.prompt = False
c.downloads.position = "bottom"
c.downloads.remove_finished = 5000
# Increase the default scroll offset of j/k
# NOTE: Unfortunately this breaks websites that use their own keybinds for j/k/etc
# config.bind('j', 'run-with-count 5 scroll down')
# config.bind('k', 'run-with-count 5 scroll up')
# NOTE: Use with smooth scrolling enabled to scroll smoothly
# config.bind('d', 'run-with-count 12 scroll down')
# config.bind('u', 'run-with-count 12 scroll up')
# Don't paste something by accident
config.unbind('pp', mode='normal')
config.unbind('pP', mode='normal')
config.unbind('Pp', mode='normal')
config.unbind('PP', mode='normal')
config.unbind('wp', mode='normal')
config.unbind('wP', mode='normal')
# Easily enter account information
# NOTE: I re-evaluated pass when I was focusing on a terminal-centric workflow.
config.bind('zl', 'spawn --userscript qute-pass')
config.bind('zpl', 'spawn --userscript qute-pass --password-only')
config.bind('zol', 'spawn --userscript qute-pass --otp-only')
# Hide the status bar except under exceptional circumstances
# NOTE: This broke more things than not, which is why I ultimately decided
# to always use the status bar. More information can be found in the
# following discussion: https://github.com/qutebrowser/qutebrowser/issues/2236
# config.bind('o', 'set statusbar.show always;; set-cmd-text -s :open')
# config.bind('O', 'set statusbar.show always;; set-cmd-text -s :open -t')
# config.bind('T', 'set statusbar.show always;; set-cmd-text -sr :tab-focus')
# config.bind(':', 'set statusbar.show always;; set-cmd-text :')
# config.bind('/', 'set statusbar.show always;; set-cmd-text /')
# config.bind('<Escape>', 'mode-enter normal;; set statusbar.show in-mode', mode='command')
config.bind('zM', 'spawn mpv --force-window=immediate {url}')
config.bind('zm', 'hint links spawn mpv --force-window=immediate {hint-url}')
# Use proxy websites for popular services
config.bind('zu', 'hint links spawn -u untrack-url -O {hint-url}')
# Don't automatically enter/leave insert mode
# NOTE: This was originally done to prevent insert mode from prematurely exiting
# in certain # cases (such as mouse usage), although keeping auto functionality
# seems to be more useful # long-term.
c.input.insert_mode.auto_enter = False
c.input.insert_mode.auto_leave = False
c.url.start_pages = ['about:blank']
c.url.default_page = "about:blank"
c.url.searchengines = {
'DEFAULT': 'https://search.goo.ne.jp/web.jsp?MT={}'
}
'';
};
keyBindings = {
normal = {
d = "scroll-page 0 0.5";
u = "scroll-page 0 -0.5";
D = "scroll-page 0 0.5";
U = "scroll-page 0 -0.5";
"<Alt+Left>" = "back";
"<Alt+Right>" = "forward";
"<Ctrl+Shift+Tab>" = "tab-prev";
"<Ctrl+Tab>" = "tab-next";
J = "tab-prev";
K = "tab-next";
"<F12>" = "devtools";
zb = "bookmark-del";
x = "tab-close";
X = "undo";
st = "config-cycle tabs.show multiple switching";
sTh = "set tabs.position left";
sTj = "set tabs.position bottom";
sTk = "set tabs.position top";
sTl = "set tabs.position right";
};
};
extraConfig = ''
# Mute tabs by default
from qutebrowser.mainwindow import tabwidget
tabwidget.TabWidget.MUTE_STRING = ""
tabwidget.TabWidget.AUDIBLE_STRING = "[A]"
# Use ranger as the file selector
c.fileselect.handler = 'external'
c.fileselect.folder.command = ['kitty', '-e', 'ranger', '--choosedir={}']
c.fileselect.multiple_files.command = ['kitty', '-e', 'ranger', '--choosefiles={}']
c.fileselect.single_file.command = ['kitty', '-e', 'ranger', '--choosefile={}']
# Better context menu colors
c.colors.contextmenu.disabled.fg = '#808080'
c.colors.contextmenu.menu.bg = '#353535'
c.colors.contextmenu.menu.fg = '#ffffff'
c.colors.contextmenu.selected.bg = '#909090'
# Chromium flags
c.qt.args = ["disable-backing-store-limit", "enable-accelerated-video-decode", "disable-gpu-driver-bug-workarounds"]
c.qt.chromium.low_end_device_mode = 'never'
# Download settings
c.downloads.location.directory = "$HOME/Downloads"
c.downloads.location.prompt = False
c.downloads.position = "bottom"
c.downloads.remove_finished = 5000
# Increase the default scroll offset of j/k
# NOTE: Unfortunately this breaks websites that use their own keybinds for j/k/etc
# config.bind('j', 'run-with-count 5 scroll down')
# config.bind('k', 'run-with-count 5 scroll up')
# NOTE: Use with smooth scrolling enabled to scroll smoothly
# config.bind('d', 'run-with-count 12 scroll down')
# config.bind('u', 'run-with-count 12 scroll up')
# Don't paste something by accident
config.unbind('pp', mode='normal')
config.unbind('pP', mode='normal')
config.unbind('Pp', mode='normal')
config.unbind('PP', mode='normal')
config.unbind('wp', mode='normal')
config.unbind('wP', mode='normal')
# Easily enter account information
# NOTE: I re-evaluated pass when I was focusing on a terminal-centric workflow.
config.bind('zl', 'spawn --userscript qute-pass')
config.bind('zpl', 'spawn --userscript qute-pass --password-only')
config.bind('zol', 'spawn --userscript qute-pass --otp-only')
# Hide the status bar except under exceptional circumstances
# NOTE: This broke more things than not, which is why I ultimately decided
# to always use the status bar. More information can be found in the
# following discussion: https://github.com/qutebrowser/qutebrowser/issues/2236
# config.bind('o', 'set statusbar.show always;; set-cmd-text -s :open')
# config.bind('O', 'set statusbar.show always;; set-cmd-text -s :open -t')
# config.bind('T', 'set statusbar.show always;; set-cmd-text -sr :tab-focus')
# config.bind(':', 'set statusbar.show always;; set-cmd-text :')
# config.bind('/', 'set statusbar.show always;; set-cmd-text /')
# config.bind('<Escape>', 'mode-enter normal;; set statusbar.show in-mode', mode='command')
config.bind('zM', 'spawn mpv --force-window=immediate {url}')
config.bind('zm', 'hint links spawn mpv --force-window=immediate {hint-url}')
# Use proxy websites for popular services
config.bind('zu', 'hint links spawn -u untrack-url -O {hint-url}')
# Don't automatically enter/leave insert mode
# NOTE: This was originally done to prevent insert mode from prematurely exiting
# in certain # cases (such as mouse usage), although keeping auto functionality
# seems to be more useful # long-term.
c.input.insert_mode.auto_enter = False
c.input.insert_mode.auto_leave = False
c.url.start_pages = ['about:blank']
c.url.default_page = "about:blank"
c.url.searchengines = {
'DEFAULT': 'https://search.goo.ne.jp/web.jsp?MT={}'
}
'';
};
}];
}
];
}

View File

@ -1,33 +1,37 @@
{ pkgs, lib, ... }:
{
home-manager.sharedModules = [{
programs.rofi = {
enable = true;
pkgs,
lib,
...
}: {
home-manager.sharedModules = [
{
programs.rofi = {
enable = true;
package = (pkgs.callPackage ../../packages/rofi/wrapper.nix {
rofi-unwrapped = (pkgs.callPackage ../../packages/rofi/wayland.nix { });
});
package = pkgs.callPackage ../../packages/rofi/wrapper.nix {
rofi-unwrapped = pkgs.callPackage ../../packages/rofi/wayland.nix {};
};
cycle = false;
cycle = false;
extraConfig = {
modi = "drun,filebrowser";
font = "Noto Sans CJK JP 12";
show-icons = true;
bw = 0;
display-drun = "";
display-window = "";
display-combi = "";
icon-theme = "Fluent-dark";
terminal = "kitty";
drun-match-fields = "name";
drun-display-format = "{name}";
me-select-entry = "";
me-accept-entry = "MousePrimary";
extraConfig = {
modi = "drun,filebrowser";
font = "Noto Sans CJK JP 12";
show-icons = true;
bw = 0;
display-drun = "";
display-window = "";
display-combi = "";
icon-theme = "Fluent-dark";
terminal = "kitty";
drun-match-fields = "name";
drun-display-format = "{name}";
me-select-entry = "";
me-accept-entry = "MousePrimary";
};
theme = lib.mkForce ./launchpad.rasi;
};
theme = lib.mkForce ./launchpad.rasi;
};
}];
}
];
}

View File

@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
stylix.image = ./wallpaper.png;
stylix.polarity = "dark";
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/monokai.yaml";

View File

@ -1,23 +1,23 @@
{ pkgs, ... }:
{pkgs, ...}: {
security.pam.services.swaylock = {};
{
security.pam.services.swaylock = { };
home-manager.sharedModules = [{
programs.swaylock = {
package = pkgs."swaylock-effects";
settings = {
show-keyboard-layout = true;
daemonize = true;
effect-blur = "20x2";
clock = true;
indicator = true;
font-size = 25;
indicator-radius = 85;
indicator-thickness = 16;
screenshots = true;
fade-in = 1;
home-manager.sharedModules = [
{
programs.swaylock = {
package = pkgs."swaylock-effects";
settings = {
show-keyboard-layout = true;
daemonize = true;
effect-blur = "20x2";
clock = true;
indicator = true;
font-size = 25;
indicator-radius = 85;
indicator-thickness = 16;
screenshots = true;
fade-in = 1;
};
};
};
}];
}
];
}

View File

@ -1,22 +1,22 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.thunar.enable = true;
services.tumbler.enable = true; # Thumbnail support
environment.systemPackages = with pkgs; [
xfce.exo # Open with kitty support
glib
(pkgs.callPackage ../../packages/go-thumbnailer { })
(pkgs.callPackage ../../packages/go-thumbnailer {})
];
services.gvfs.enable = true; # Trash support
services.gnome.gnome-keyring.enable = true; # Mount support
home-manager.sharedModules = [{
xdg.configFile."xfce4/helpers.rc".text = ''
TerminalEmulator=kitty
TerminalEmulatorDismissed=true
'';
}];
home-manager.sharedModules = [
{
xdg.configFile."xfce4/helpers.rc".text = ''
TerminalEmulator=kitty
TerminalEmulatorDismissed=true
'';
}
];
}

View File

@ -1,154 +1,157 @@
{ lib, pkgs, ... }:
{
home-manager.sharedModules = [{
programs.waybar = {
enable = true;
package = (pkgs.callPackage ../../packages/waybar { });
lib,
pkgs,
...
}: {
home-manager.sharedModules = [
{
programs.waybar = {
enable = true;
package = pkgs.callPackage ../../packages/waybar {};
settings = {
mainBar = {
layer = "top";
position = "right";
width = 45;
spacing = 8;
modules-left = [ "wlr/workspaces" "custom/new-workspace" ];
modules-right =
[ "tray" "wireplumber" "backlight" "battery" "clock" ];
tray = {
icon-size = 24;
settings = {
mainBar = {
layer = "top";
position = "right";
width = 45;
spacing = 8;
};
"wlr/workspaces" = {
on-click = "activate";
sort-by-number = true;
format = "{icon}";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"7" = "";
"8" = "";
"9" = "";
"10" = "";
modules-left = ["wlr/workspaces" "custom/new-workspace"];
modules-right = ["tray" "wireplumber" "backlight" "battery" "clock"];
tray = {
icon-size = 24;
spacing = 8;
};
};
wireplumber = {
format = "{icon}";
tooltip-format = "{volume}% {node_name}";
format-muted = "";
format-icons = [ "" "" ];
};
battery = {
"format" = "{icon}";
"tooltip-format" = "{capacity}% {timeTo}";
"format-icons" = [ "" "" "" "" "" ];
};
clock = {
"format" = "{:%H\n%M}";
"tooltip-format" = "<tt>{calendar}</tt>";
"calendar" = {
"mode" = "month";
"weeks-pos" = "right";
"format" = {
"months" = "<span color='#ffead3'><b>{}</b></span>";
"days" = "<span color='#ecc6d9'><b>{}</b></span>";
"weeks" = "<span size='14pt' color='#99ffdd'><b>W{}</b></span>";
"weekdays" = "<span size='18pt' color='#ffcc66'><b>{}</b></span>";
"today" = "<span color='#ff6699'><b>{}</b></span>";
"wlr/workspaces" = {
on-click = "activate";
sort-by-number = true;
format = "{icon}";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"7" = "";
"8" = "";
"9" = "";
"10" = "";
};
};
};
backlight = {
"format" = "{icon}";
"format-icons" = [ "" "" ];
};
wireplumber = {
format = "{icon}";
tooltip-format = "{volume}% {node_name}";
format-muted = "";
format-icons = ["" ""];
};
"custom/new-workspace" = {
"format" = "+";
"on-click" = "hyprctl dispatch workspace empty && rofi -show drun";
"on-click-right" = "rofi -show drun";
"tooltip" = false;
battery = {
"format" = "{icon}";
"tooltip-format" = "{capacity}% {timeTo}";
"format-icons" = ["" "" "" "" ""];
};
clock = {
"format" = "{:%H\n%M}";
"tooltip-format" = "<tt>{calendar}</tt>";
"calendar" = {
"mode" = "month";
"weeks-pos" = "right";
"format" = {
"months" = "<span color='#ffead3'><b>{}</b></span>";
"days" = "<span color='#ecc6d9'><b>{}</b></span>";
"weeks" = "<span size='14pt' color='#99ffdd'><b>W{}</b></span>";
"weekdays" = "<span size='18pt' color='#ffcc66'><b>{}</b></span>";
"today" = "<span color='#ff6699'><b>{}</b></span>";
};
};
};
backlight = {
"format" = "{icon}";
"format-icons" = ["" ""];
};
"custom/new-workspace" = {
"format" = "+";
"on-click" = "hyprctl dispatch workspace empty && rofi -show drun";
"on-click-right" = "rofi -show drun";
"tooltip" = false;
};
};
};
style = lib.mkForce ''
@define-color base00 #272822;
@define-color base01 #383830;
@define-color base02 #49483e;
@define-color base03 #75715e;
@define-color base04 #a59f85;
@define-color base05 #f8f8f2;
@define-color base06 #f5f4f1;
@define-color base07 #f9f8f5;
@define-color base08 #f92672;
@define-color base09 #fd971f;
@define-color base0A #f4bf75;
@define-color base0B #a6e22e;
@define-color base0C #a1efe4;
@define-color base0D #66d9ef;
@define-color base0E #ae81ff;
@define-color base0F #cc6633;
* {
color: @base05;
font-size: 16px;
}
window#waybar {
background: alpha(@base00, 0.92);
border-left: 1px solid alpha(@base02, 0.67);
}
#workspaces button {
padding: 12px 0;
border-radius: 0;
}
#workspaces button.active {
background: alpha(@base02, 0.67);
}
#window {
padding-top: 8px;
padding-bottom: 12px;
}
tooltip, #tray menu {
background: @base00;
border: 1px solid alpha(@base09, 0.93);
padding: 8px;
}
#backlight, #battery, #wireplumber {
font-family: "Font Awesome 6 Free Solid";
font-size: 24px;
}
#custom-new-workspace {
font-family: "Font Awesome 6 Free Solid";
padding-top: 8px;
padding-bottom: 8px;
color: alpha(@base0A, 0.67);
}
#clock {
font-size: 18px;
font-weight: bold;
padding-bottom: 8px;
}
'';
};
style = lib.mkForce ''
@define-color base00 #272822;
@define-color base01 #383830;
@define-color base02 #49483e;
@define-color base03 #75715e;
@define-color base04 #a59f85;
@define-color base05 #f8f8f2;
@define-color base06 #f5f4f1;
@define-color base07 #f9f8f5;
@define-color base08 #f92672;
@define-color base09 #fd971f;
@define-color base0A #f4bf75;
@define-color base0B #a6e22e;
@define-color base0C #a1efe4;
@define-color base0D #66d9ef;
@define-color base0E #ae81ff;
@define-color base0F #cc6633;
* {
color: @base05;
font-size: 16px;
}
window#waybar {
background: alpha(@base00, 0.92);
border-left: 1px solid alpha(@base02, 0.67);
}
#workspaces button {
padding: 12px 0;
border-radius: 0;
}
#workspaces button.active {
background: alpha(@base02, 0.67);
}
#window {
padding-top: 8px;
padding-bottom: 12px;
}
tooltip, #tray menu {
background: @base00;
border: 1px solid alpha(@base09, 0.93);
padding: 8px;
}
#backlight, #battery, #wireplumber {
font-family: "Font Awesome 6 Free Solid";
font-size: 24px;
}
#custom-new-workspace {
font-family: "Font Awesome 6 Free Solid";
padding-top: 8px;
padding-bottom: 8px;
color: alpha(@base0A, 0.67);
}
#clock {
font-size: 18px;
font-weight: bold;
padding-bottom: 8px;
}
'';
};
}];
}
];
}

View File

@ -1,19 +1,21 @@
{
home-manager.sharedModules = [{
xdg.userDirs = {
enable = true;
home-manager.sharedModules = [
{
xdg.userDirs = {
enable = true;
desktop = null;
templates = null;
publicShare = null;
desktop = null;
templates = null;
publicShare = null;
download = "/home/user/";
documents = "/home/user/";
music = "/home/user/";
pictures = "/home/user/";
videos = "/home/user/";
};
download = "/home/user/";
documents = "/home/user/";
music = "/home/user/";
pictures = "/home/user/";
videos = "/home/user/";
};
xdg.configFile."user-dirs.locale".text = "ja_JP";
}];
xdg.configFile."user-dirs.locale".text = "ja_JP";
}
];
}

View File

@ -1,15 +1,17 @@
{
home-manager.sharedModules = [{
programs.zathura = {
enable = true;
home-manager.sharedModules = [
{
programs.zathura = {
enable = true;
options = {
guioptions = "v";
adjust-open = "width";
statusbar-basename = true;
render-loading = false;
scroll-step = 120;
options = {
guioptions = "v";
adjust-open = "width";
statusbar-basename = true;
render-loading = false;
scroll-step = 120;
};
};
};
}];
}
];
}

View File

@ -1,10 +1,10 @@
{ lib
, buildGoModule
, fetchFromGitHub
, pkg-config
, vips
{
lib,
buildGoModule,
fetchFromGitHub,
pkg-config,
vips,
}:
buildGoModule rec {
pname = "go-thumbnailer";
version = "0.1.0";
@ -36,6 +36,6 @@ buildGoModule rec {
description = "A cover thumbnailer written in Go for performance and reliability.";
homepage = "https://github.com/donovanglover/go-thumbnailer";
license = licenses.mit;
maintainers = [ ];
maintainers = [];
};
}

View File

@ -1,5 +1,8 @@
{ lib, rustPlatform, fetchFromGitHub }:
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "hyprland-autoname-workspaces";
version = "1.0.0";
@ -17,6 +20,6 @@ rustPlatform.buildRustPackage rec {
description = "Automatically rename the workspaces with icons of started applications";
homepage = "https://github.com/hyprland-community/hyprland-autoname-workspaces";
license = licenses.isc;
maintainers = with maintainers; [ donovanglover ];
maintainers = with maintainers; [donovanglover];
};
}

View File

@ -1,5 +1,8 @@
{ lib, rustPlatform, fetchFromGitHub }:
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "joshuto";
version = "493af3185092036cbbae81ae620b101f66cf4e9a";
@ -17,6 +20,6 @@ rustPlatform.buildRustPackage rec {
description = "Ranger-like terminal file manager written in Rust";
homepage = "https://github.com/kamiyaa/joshuto";
license = licenses.lgpl3Only;
maintainers = with maintainers; [ figsoda totoroot ];
maintainers = with maintainers; [figsoda totoroot];
};
}

View File

@ -1,11 +1,11 @@
{ lib
, buildGoModule
, fetchFromGitHub
, pkg-config
, gtk3
, gtk-layer-shell
{
lib,
buildGoModule,
fetchFromGitHub,
pkg-config,
gtk3,
gtk-layer-shell,
}:
buildGoModule rec {
pname = "nwg-dock-hyprland";
version = "0.1.2";
@ -19,16 +19,16 @@ buildGoModule rec {
vendorSha256 = "sha256-GhcrIVnZRbiGTfeUAWvslOVWDZmoL0ZRnjgTtQgxe2Q=";
ldflags = [ "-s" "-w" ];
ldflags = ["-s" "-w"];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk3 gtk-layer-shell ];
nativeBuildInputs = [pkg-config];
buildInputs = [gtk3 gtk-layer-shell];
meta = with lib; {
description = "GTK3-based dock for hyprland";
homepage = "https://github.com/nwg-piotr/nwg-dock-hyprland";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ dit7ya ];
maintainers = with maintainers; [dit7ya];
};
}

View File

@ -1,28 +1,28 @@
{ stdenv
, lib
, fetchFromGitHub
, meson
, ninja
, pkg-config
, libxkbcommon
, pango
, which
, git
, cairo
, libxcb
, xcbutil
, xcbutilwm
, xcbutilxrm
, xcb-util-cursor
, libstartup_notification
, bison
, flex
, librsvg
, check
, glib
, buildPackages
{
stdenv,
lib,
fetchFromGitHub,
meson,
ninja,
pkg-config,
libxkbcommon,
pango,
which,
git,
cairo,
libxcb,
xcbutil,
xcbutilwm,
xcbutilxrm,
xcb-util-cursor,
libstartup_notification,
bison,
flex,
librsvg,
check,
glib,
buildPackages,
}:
stdenv.mkDerivation rec {
pname = "rofi-unwrapped";
version = "1.7.5";
@ -41,8 +41,8 @@ stdenv.mkDerivation rec {
sed -i 's/~root/~nobody/g' test/helper-expand.c
'';
depsBuildBuild = [ buildPackages.stdenv.cc pkg-config glib ];
nativeBuildInputs = [ meson ninja pkg-config flex bison ];
depsBuildBuild = [buildPackages.stdenv.cc pkg-config glib];
nativeBuildInputs = [meson ninja pkg-config flex bison];
buildInputs = [
libxkbcommon
pango
@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
description = "Window switcher, run dialog and dmenu replacement";
homepage = "https://github.com/davatorium/rofi";
license = licenses.mit;
maintainers = with maintainers; [ bew ];
maintainers = with maintainers; [bew];
platforms = with platforms; linux;
};
}

View File

@ -1,12 +1,12 @@
{ stdenv
, lib
, fetchFromGitHub
, rofi-unwrapped
, wayland-scanner
, wayland-protocols
, wayland
{
stdenv,
lib,
fetchFromGitHub,
rofi-unwrapped,
wayland-scanner,
wayland-protocols,
wayland,
}:
rofi-unwrapped.overrideAttrs (oldAttrs: rec {
pname = "rofi-wayland-unwrapped";
version = "git";
@ -19,14 +19,14 @@ rofi-unwrapped.overrideAttrs (oldAttrs: rec {
sha256 = "sha256-8IfHpaVFGeWqyw+tLjNtg+aWwAHhSA5PuXJYjpoht2E=";
};
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ wayland-scanner ];
buildInputs = oldAttrs.buildInputs ++ [ wayland wayland-protocols ];
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [wayland-scanner];
buildInputs = oldAttrs.buildInputs ++ [wayland wayland-protocols];
meta = with lib; {
description = "Window switcher, run dialog and dmenu replacement for Wayland";
homepage = "https://github.com/lbonn/rofi";
license = licenses.mit;
maintainers = with maintainers; [ bew ];
maintainers = with maintainers; [bew];
platforms = with platforms; linux;
};
})

View File

@ -1,14 +1,26 @@
{ symlinkJoin, lib, rofi-unwrapped, makeWrapper, wrapGAppsHook, gdk-pixbuf, hicolor-icon-theme, theme ? null, plugins ? [], symlink-dmenu ? false }:
{
symlinkJoin,
lib,
rofi-unwrapped,
makeWrapper,
wrapGAppsHook,
gdk-pixbuf,
hicolor-icon-theme,
theme ? null,
plugins ? [],
symlink-dmenu ? false,
}:
symlinkJoin {
name = "rofi-${rofi-unwrapped.version}";
paths = [
rofi-unwrapped.out
] ++ (lib.forEach plugins (p: p.out));
paths =
[
rofi-unwrapped.out
]
++ (lib.forEach plugins (p: p.out));
nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
buildInputs = [ gdk-pixbuf ];
nativeBuildInputs = [makeWrapper wrapGAppsHook];
buildInputs = [gdk-pixbuf];
preferLocalBuild = true;
passthru.unwrapped = rofi-unwrapped;
@ -36,7 +48,9 @@ symlinkJoin {
--prefix XDG_DATA_DIRS : $out/share
'';
meta = rofi-unwrapped.meta // {
priority = (rofi-unwrapped.meta.priority or 0) - 1;
};
meta =
rofi-unwrapped.meta
// {
priority = (rofi-unwrapped.meta.priority or 0) - 1;
};
}

View File

@ -1,32 +1,30 @@
{ lib
, stdenv
, fetchurl
, fetchFromGitHub
, cmake
, curl
, nasm
, libopenmpt
, p7zip
, libgme
, libpng
, SDL2
, SDL2_mixer
, zlib
, unzip
, makeWrapper
, makeDesktopItem
, copyDesktopItems
}:
let
{
lib,
stdenv,
fetchurl,
fetchFromGitHub,
cmake,
curl,
nasm,
libopenmpt,
p7zip,
libgme,
libpng,
SDL2,
SDL2_mixer,
zlib,
unzip,
makeWrapper,
makeDesktopItem,
copyDesktopItems,
}: let
version = "2.2.11";
# Normal assets found on the official release
assets = stdenv.mkDerivation rec {
pname = "srb2-data";
inherit version;
nativeBuildInputs = [ unzip ];
nativeBuildInputs = [unzip];
src = fetchurl {
url = "https://github.com/STJr/SRB2/releases/download/SRB2_release_${version}/SRB2-v${lib.replaceStrings ["."] [""] version}-Full.zip";
sha256 = "sha256-KsJIkCczD/HyIwEy5dI3zsHbWFCMBaCoCHizfupFoWM=";
@ -37,79 +35,78 @@ let
cp -r *pk3 *dta *dat models/ $out/share/srb2/
'';
};
in
stdenv.mkDerivation rec {
pname = "srb2";
inherit version;
in stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "STJr";
repo = "SRB2";
rev = "SRB2_release_${version}";
sha256 = "sha256-tyiXivJWjNnL+4YynUV6k6iaMs8o9HkHrp+qFj2+qvQ=";
};
pname = "srb2";
inherit version;
nativeBuildInputs = [
cmake
nasm
p7zip
makeWrapper
copyDesktopItems
];
src = fetchFromGitHub {
owner = "STJr";
repo = "SRB2";
rev = "SRB2_release_${version}";
sha256 = "sha256-tyiXivJWjNnL+4YynUV6k6iaMs8o9HkHrp+qFj2+qvQ=";
};
buildInputs = [
curl
libgme
libpng
libopenmpt
SDL2
SDL2_mixer
zlib
];
nativeBuildInputs = [
cmake
nasm
p7zip
makeWrapper
copyDesktopItems
];
cmakeFlags = [
"-DSRB2_ASSET_DIRECTORY=${assets}/share/srb2"
"-DGME_INCLUDE_DIR=${libgme}/include"
"-DOPENMPT_INCLUDE_DIR=${libopenmpt.dev}/include"
"-DSDL2_MIXER_INCLUDE_DIR=${lib.getDev SDL2_mixer}/include/SDL2"
"-DSDL2_INCLUDE_DIR=${lib.getDev SDL2.dev}/include/SDL2"
];
buildInputs = [
curl
libgme
libpng
libopenmpt
SDL2
SDL2_mixer
zlib
];
patches = [
./cmake.patch
];
cmakeFlags = [
"-DSRB2_ASSET_DIRECTORY=${assets}/share/srb2"
"-DGME_INCLUDE_DIR=${libgme}/include"
"-DOPENMPT_INCLUDE_DIR=${libopenmpt.dev}/include"
"-DSDL2_MIXER_INCLUDE_DIR=${lib.getDev SDL2_mixer}/include/SDL2"
"-DSDL2_INCLUDE_DIR=${lib.getDev SDL2.dev}/include/SDL2"
];
# Desktop icon
desktopItems = [
(makeDesktopItem rec {
name = "Sonic Robo Blast 2";
exec = pname;
icon = pname;
comment = meta.description;
desktopName = name;
genericName = name;
categories = ["Game"];
})
];
patches = [
./cmake.patch
];
installPhase = ''
mkdir -p $out/bin $out/share/applications $out/share/pixmaps $out/share/icons
# Desktop icon
desktopItems = [
(makeDesktopItem rec {
name = "Sonic Robo Blast 2";
exec = pname;
icon = pname;
comment = meta.description;
desktopName = name;
genericName = name;
categories = [ "Game" ];
})
];
copyDesktopItems
installPhase = ''
mkdir -p $out/bin $out/share/applications $out/share/pixmaps $out/share/icons
cp ../srb2.png $out/share/pixmaps/.
cp ../srb2.png $out/share/icons/.
copyDesktopItems
cp bin/lsdlsrb2 $out/bin/srb2
wrapProgram $out/bin/srb2 --set SRB2WADDIR "${assets}/share/srb2"
'';
cp ../srb2.png $out/share/pixmaps/.
cp ../srb2.png $out/share/icons/.
cp bin/lsdlsrb2 $out/bin/srb2
wrapProgram $out/bin/srb2 --set SRB2WADDIR "${assets}/share/srb2"
'';
meta = with lib; {
description = "Sonic Robo Blast 2 is a 3D Sonic the Hedgehog fangame based on a modified version of Doom Legacy";
homepage = "https://www.srb2.org/";
platforms = platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ zeratax ];
};
}
meta = with lib; {
description = "Sonic Robo Blast 2 is a 3D Sonic the Hedgehog fangame based on a modified version of Doom Legacy";
homepage = "https://www.srb2.org/";
platforms = platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [zeratax];
};
}

View File

@ -1,39 +1,56 @@
{ lib
, stdenv
, fetchFromGitHub
, meson
, pkg-config
, ninja
, wrapGAppsHook
, wayland
, wlroots
, gtkmm3
, libsigcxx
, jsoncpp
, scdoc
, spdlog
, gtk-layer-shell
, howard-hinnant-date
, libinotify-kqueue
, libxkbcommon
, evdevSupport ? true, libevdev
, inputSupport ? true, libinput
, jackSupport ? true, libjack2
, mpdSupport ? true, libmpdclient
, mprisSupport ? stdenv.isLinux, playerctl ? false
, nlSupport ? true, libnl
, pulseSupport ? true, libpulseaudio
, rfkillSupport ? true
, runTests ? true, catch2_3
, sndioSupport ? true, sndio
, swaySupport ? true, sway
, traySupport ? true, libdbusmenu-gtk3
, udevSupport ? true, udev
, upowerSupport ? true, upower
, wireplumberSupport ? true, wireplumber
, withMediaPlayer ? mprisSupport && false, glib, gobject-introspection, python3
{
lib,
stdenv,
fetchFromGitHub,
meson,
pkg-config,
ninja,
wrapGAppsHook,
wayland,
wlroots,
gtkmm3,
libsigcxx,
jsoncpp,
scdoc,
spdlog,
gtk-layer-shell,
howard-hinnant-date,
libinotify-kqueue,
libxkbcommon,
evdevSupport ? true,
libevdev,
inputSupport ? true,
libinput,
jackSupport ? true,
libjack2,
mpdSupport ? true,
libmpdclient,
mprisSupport ? stdenv.isLinux,
playerctl ? false,
nlSupport ? true,
libnl,
pulseSupport ? true,
libpulseaudio,
rfkillSupport ? true,
runTests ? true,
catch2_3,
sndioSupport ? true,
sndio,
swaySupport ? true,
sway,
traySupport ? true,
libdbusmenu-gtk3,
udevSupport ? true,
udev,
upowerSupport ? true,
upower,
wireplumberSupport ? true,
wireplumber,
withMediaPlayer ? mprisSupport && false,
glib,
gobject-introspection,
python3,
}:
stdenv.mkDerivation rec {
pname = "waybar";
version = "0.9.18";
@ -45,9 +62,15 @@ stdenv.mkDerivation rec {
hash = "sha256-bnaYNa1jb7kZ1mtMzeOQqz4tmBG1w5YXlQWoop1Q0Yc=";
};
nativeBuildInputs = [
meson ninja pkg-config scdoc wrapGAppsHook
] ++ lib.optional withMediaPlayer gobject-introspection;
nativeBuildInputs =
[
meson
ninja
pkg-config
scdoc
wrapGAppsHook
]
++ lib.optional withMediaPlayer gobject-introspection;
propagatedBuildInputs = lib.optionals withMediaPlayer [
glib
@ -58,56 +81,63 @@ stdenv.mkDerivation rec {
strictDeps = false;
buildInputs = with lib;
[ wayland wlroots gtkmm3 libsigcxx jsoncpp spdlog gtk-layer-shell howard-hinnant-date libxkbcommon ]
++ optional (!stdenv.isLinux) libinotify-kqueue
++ optional evdevSupport libevdev
++ optional inputSupport libinput
++ optional jackSupport libjack2
++ optional mpdSupport libmpdclient
++ optional mprisSupport playerctl
++ optional nlSupport libnl
++ optional pulseSupport libpulseaudio
++ optional sndioSupport sndio
++ optional swaySupport sway
++ optional traySupport libdbusmenu-gtk3
++ optional udevSupport udev
++ optional upowerSupport upower
++ optional wireplumberSupport wireplumber;
[wayland wlroots gtkmm3 libsigcxx jsoncpp spdlog gtk-layer-shell howard-hinnant-date libxkbcommon]
++ optional (!stdenv.isLinux) libinotify-kqueue
++ optional evdevSupport libevdev
++ optional inputSupport libinput
++ optional jackSupport libjack2
++ optional mpdSupport libmpdclient
++ optional mprisSupport playerctl
++ optional nlSupport libnl
++ optional pulseSupport libpulseaudio
++ optional sndioSupport sndio
++ optional swaySupport sway
++ optional traySupport libdbusmenu-gtk3
++ optional udevSupport udev
++ optional upowerSupport upower
++ optional wireplumberSupport wireplumber;
nativeCheckInputs = [ catch2_3 ];
nativeCheckInputs = [catch2_3];
doCheck = runTests;
mesonFlags = (lib.mapAttrsToList
(option: enable: "-D${option}=${if enable then "enabled" else "disabled"}")
{
dbusmenu-gtk = traySupport;
jack = jackSupport;
libinput = inputSupport;
libnl = nlSupport;
libudev = udevSupport;
mpd = mpdSupport;
mpris = mprisSupport;
pulseaudio = pulseSupport;
rfkill = rfkillSupport;
sndio = sndioSupport;
tests = runTests;
upower_glib = upowerSupport;
wireplumber = wireplumberSupport;
}
) ++ [
"-Dsystemd=disabled"
"-Dgtk-layer-shell=enabled"
"-Dman-pages=enabled"
"-Dcava=disabled"
"-Dexperimental=true"
];
mesonFlags =
(
lib.mapAttrsToList
(option: enable: "-D${option}=${
if enable
then "enabled"
else "disabled"
}")
{
dbusmenu-gtk = traySupport;
jack = jackSupport;
libinput = inputSupport;
libnl = nlSupport;
libudev = udevSupport;
mpd = mpdSupport;
mpris = mprisSupport;
pulseaudio = pulseSupport;
rfkill = rfkillSupport;
sndio = sndioSupport;
tests = runTests;
upower_glib = upowerSupport;
wireplumber = wireplumberSupport;
}
)
++ [
"-Dsystemd=disabled"
"-Dgtk-layer-shell=enabled"
"-Dman-pages=enabled"
"-Dcava=disabled"
"-Dexperimental=true"
];
preFixup = lib.optionalString withMediaPlayer ''
cp $src/resources/custom_modules/mediaplayer.py $out/bin/waybar-mediaplayer.py
cp $src/resources/custom_modules/mediaplayer.py $out/bin/waybar-mediaplayer.py
wrapProgram $out/bin/waybar-mediaplayer.py \
--prefix PYTHONPATH : "$PYTHONPATH:$out/${python3.sitePackages}"
'';
wrapProgram $out/bin/waybar-mediaplayer.py \
--prefix PYTHONPATH : "$PYTHONPATH:$out/${python3.sitePackages}"
'';
postPatch = ''
# use hyprctl to switch workspaces
@ -118,7 +148,7 @@ stdenv.mkDerivation rec {
changelog = "https://github.com/alexays/waybar/releases/tag/${version}";
description = "Highly customizable Wayland bar for Sway and Wlroots based compositors";
license = licenses.mit;
maintainers = with maintainers; [ FlorianFranzen minijackson synthetica lovesegfault rodrgz ];
maintainers = with maintainers; [FlorianFranzen minijackson synthetica lovesegfault rodrgz];
platforms = platforms.unix;
homepage = "https://github.com/alexays/waybar";
};

View File

@ -1,10 +1,10 @@
{ lib
, makeWrapper
, rustPlatform
, pkg-config
, fetchFromGitHub
, wayland
,
{
lib,
makeWrapper,
rustPlatform,
pkg-config,
fetchFromGitHub,
wayland,
}:
rustPlatform.buildRustPackage rec {
pname = "waycorner";
@ -35,6 +35,6 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/AndreasBackx/waycorner";
platforms = platforms.linux;
license = licenses.mit;
maintainers = with maintainers; [ NotAShelf ];
maintainers = with maintainers; [NotAShelf];
};
}