organized and updated config #1

Merged
kenryuS merged 6 commits from organize-config into main 2025-03-07 18:10:33 +09:00
77 changed files with 732 additions and 305 deletions
Showing only changes of commit 6216fcd751 - Show all commits

56
flake.lock generated
View File

@@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1734821669, "lastModified": 1741217763,
"narHash": "sha256-F7Z2tIJsUEhErpK0sGMep4xG/eTVuK2eBpvgh3cS2H8=", "narHash": "sha256-g/TrltIjFHIjtzKY5CJpoPANfHQWDD43G5U1a/v5oVg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "51160a097a850839b7eae7ef08d0d3e7e353dfc3", "rev": "486b066025dccd8af7fbe5dd2cc79e46b88c80da",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -21,13 +21,32 @@
"type": "github" "type": "github"
} }
}, },
"homix": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1720719665,
"narHash": "sha256-BKcOoDlMC86zExMKXFXQ04HO99fUNFmtEdvP+gB45Pk=",
"owner": "sioodmy",
"repo": "homix",
"rev": "62bc58f2350cbb061e61ac0f3d63018663fbe4cb",
"type": "github"
},
"original": {
"owner": "sioodmy",
"ref": "main",
"repo": "homix",
"type": "github"
}
},
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1734352517, "lastModified": 1741325094,
"narHash": "sha256-mfv+J/vO4nqmIOlq8Y1rRW8hVsGH3M+I2ESMjhuebDs=", "narHash": "sha256-RUAdT8dZ6k/486vnu3tiNRrNW6+Q8uSD2Mq7gTX4jlo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "b12e314726a4226298fe82776b4baeaa7bcf3dcd", "rev": "b48cc4dab0f9711af296fc367b6108cf7b8ccb16",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -39,11 +58,27 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1734649271, "lastModified": 1719690277,
"narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=", "narHash": "sha256-0xSej1g7eP2kaUF+JQp8jdyNmpmCJKRpO12mKl/36Kc=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507", "rev": "2741b4b489b55df32afac57bc4bfd220e8bf617e",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1741246872,
"narHash": "sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "10069ef4cf863633f57238f179a0297de84bd8d3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -55,8 +90,9 @@
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"homix": "homix",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs_2"
} }
} }
}, },

View File

@@ -5,10 +5,11 @@
nixpkgs.url = "nixpkgs/nixos-unstable"; nixpkgs.url = "nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager/master"; home-manager.url = "github:nix-community/home-manager/master";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
homix.url = "github:sioodmy/homix/main";
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
}; };
outputs = inputs@{ self, nixpkgs, home-manager, ... }: outputs = inputs@{ self, nixpkgs, homix, ... }:
let let
systemSettings = { systemSettings = {
system = "x86_64-linux"; system = "x86_64-linux";
@@ -16,12 +17,6 @@
host = "syushiki"; host = "syushiki";
timezone = "Asia/Tokyo"; timezone = "Asia/Tokyo";
locale = "ja_JP.UTF-8"; locale = "ja_JP.UTF-8";
bootConf = {
mode = "uefi";
mountPath = "/boot";
grubDev = "";
};
gpuType = "nvidia";
}; };
userSettings = { userSettings = {
@@ -29,8 +24,6 @@
name = "Kenryu Shibata"; name = "Kenryu Shibata";
email-dev = "kenryudev5894@gmail.com"; email-dev = "kenryudev5894@gmail.com";
dotfilesDir = "/etc/nixos"; dotfilesDir = "/etc/nixos";
editor = "nvim";
editor-pkg = pkgs.neovim;
}; };
pkgs = import inputs.nixpkgs { pkgs = import inputs.nixpkgs {
@@ -39,34 +32,27 @@
lib = inputs.nixpkgs.lib; lib = inputs.nixpkgs.lib;
in { in {
#nixosModules = { nixosModules = {
# home-mngr = home-manager.nixosModules.home-manager { homix = homix.nixosModules.default;
};
nixosConfigurations = import ./hosts inputs;
#nixosConfigurations.syushiki = lib.nixosSystem {
# system = systemSettings.system;
# modules = [
# ./hosts/syushiki
# ./overlays
# home-manager.nixosModules.home-manager {
# home-manager.useGlobalPkgs = true; # home-manager.useGlobalPkgs = true;
# home-manager.useUserPackages = true; # home-manager.useUserPackages = true;
# home-manager.users.${userSettings.username} = import (./. + "/hosts/${systemSettings.host}/home.nix"); # home-manager.users.${userSettings.username} = import (./. + "/hosts/${systemSettings.host}/home.nix");
# home-manager.extraSpecialArgs = { # home-manager.extraSpecialArgs = {
# inherit userSettings; # inherit userSettings;
# }; # };
# }
# ];
# specialArgs = {
# inherit inputs systemSettings userSettings;
# }; # };
#}; #};
#nixosConfigurations = import ./hosts inputs { inherit systemSettings; inherit userSettings; };
nixosConfigurations.syushiki = lib.nixosSystem {
system = systemSettings.system;
modules = [
./hosts/syushiki
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.${userSettings.username} = import (./. + "/hosts/${systemSettings.host}/home.nix");
home-manager.extraSpecialArgs = {
inherit userSettings;
};
}
];
specialArgs = {
inherit inputs systemSettings userSettings;
};
};
}; };
} }

View File

@@ -1,20 +1,17 @@
{ self, nixpkgs, ... }: { systemSettings, userSettings, ... }: { self, nixpkgs, ... }:
let let
inherit (self) inputs; inherit (self) inputs;
inherit systemSettings userSettings;
mkHost = name: mkHost = name:
nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
modules = [ modules = [
./${name} ./${name}
{ ../overlays
nixpkgs.hostPlatform = systemSettings.system;
}
] ++ builtins.attrValues self.nixosModules; ] ++ builtins.attrValues self.nixosModules;
specialArgs = { specialArgs = {
inherit inputs; inherit inputs;
inherit systemSettings; systemSettings = import ./${name}/systemSettings.nix;
inherit userSettings; userSettings = import ../user/userSettings.nix;
}; };
}; };
in in

View File

@@ -1,7 +1,8 @@
{ config, lib, pkgs, modulesPath, ... }: { { config, lib, pkgs, modulesPath, systemSettings, ... }: {
imports = [ imports = [
../../system ../../system
../../system/nvidia ../../system/nvidia
../../user
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
@@ -30,7 +31,7 @@
[ { device = "/dev/disk/by-uuid/d933c349-8e70-41e1-8d13-605656dba18b"; } [ { device = "/dev/disk/by-uuid/d933c349-8e70-41e1-8d13-605656dba18b"; }
]; ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault systemSettings.system;
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.

View File

@@ -1,14 +1,7 @@
{ pkgs, userSettings, ... }: { pkgs, userSettings, ... }:
{ {
imports = [ imports = [
../../user/apps/browsers/firefox.nix
../../user/apps/browsers/chromium.nix
../../user/apps/thunderbird.nix
../../user/dev/tools/git.nix ../../user/dev/tools/git.nix
../../user/dev/tools/gitui.nix
../../user/dev/tools/firefox-devedition.nix
../../user/dev/tools/dbeaver-bin.nix
../../user/dev/tools/tldr.nix
../../user/dev/tools/gh.nix ../../user/dev/tools/gh.nix
../../user/dev/editor/vscodium.nix ../../user/dev/editor/vscodium.nix
../../user/dev/editor/zed-editor.nix ../../user/dev/editor/zed-editor.nix
@@ -16,25 +9,6 @@
../../user/dev/lang/python.nix ../../user/dev/lang/python.nix
../../user/dev/lang/rust.nix ../../user/dev/lang/rust.nix
../../user/dev/lang/ecmascript.nix ../../user/dev/lang/ecmascript.nix
../../user/dev/ide/qtcreator.nix
../../user/apps/utils/alacritty.nix
../../user/apps/utils/keepassxc.nix
#../../user/apps/utils/cava.nix
../../user/apps/utils/owncloud-client.nix
../../user/apps/utils/fzf.nix
../../user/apps/utils/zoxide.nix
../../user/apps/media/vlc.nix
../../user/apps/media/mpv.nix
../../user/apps/media/yt-dlp.nix
../../user/apps/media/kdenlive.nix
../../user/apps/media/obs-studio.nix
../../user/apps/graphics/gimp.nix
../../user/apps/graphics/inkscape.nix
../../user/apps/games/mangohud.nix
../../user/apps/office/texlive.nix
#../../user/apps/office/libreoffice-fresh.nix
../../user/shell/bash.nix
../../user/wm/xmonad/xmonad.nix
]; ];
home.username = userSettings.username; home.username = userSettings.username;

View File

@@ -0,0 +1,6 @@
{
system = "x86_64-linux";
hostname = "kenryu-nixos";
timezone = "Asia/Tokyo";
locale = "ja_JP.UTF-8";
}

11
overlays/default.nix Normal file
View File

@@ -0,0 +1,11 @@
{ config, pkgs, lib, ... }:
{
nixpkgs.overlays = [
(final: prev: {
qemu_full = prev.qemu_full.override {
cephSupport = false;
xenSupport = false;
};
})
];
}

View File

@@ -0,0 +1,7 @@
let
nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-24.11";
pkgs = import nixpkgs { config = {}; overlays = []; };
in
{
zen-browser = pkgs.callPackage ./zen-browser.nix { };
}

View File

@@ -0,0 +1,21 @@
{ lib, stdenv, ... }:
let
version = "1.7b";
in
stdenv.mkDerivation {
pname="zen-browser";
inherit version;
src = fetchTarball {
url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen.linux-x86_64.tar.bz2";
sha256 = "0aig890fcynxwi7xi8jzd1w2gzg47n0jqfq76wvnkwcam611b2bp";
};
dontPatch = true;
dontConfigure = true;
dontBuild = true;
installPhase = ''
cp -r . $out
'';
}

View File

@@ -1,18 +1,23 @@
{ ... }: { pkgs, ... }:
{ {
hardware.pulseaudio = { services.pulseaudio = {
support32Bit = true; support32Bit = true;
daemon.config = { daemon.config = {
flat-volumes = "yes"; flat-volumes = "yes";
}; };
package = pkgs.pulseaudioFull;
}; };
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { #services.pipewire = {
enable = true; # enable = true;
alsa.enable = true; # alsa.enable = true;
alsa.support32Bit = true; # alsa.support32Bit = true;
pulse.enable = true; # pulse.enable = true;
jack.enable = true; # jack.enable = true;
}; #};
environment.systemPackages = with pkgs; [
alsa-utils
];
} }

View File

@@ -1,4 +1,4 @@
{ ... }: { { pkgs, ... }: {
imports = [ imports = [
./audio ./audio
./bluetooth ./bluetooth
@@ -11,6 +11,7 @@
./time ./time
./users ./users
./services ./services
./vnc
./wm ./wm
./env.nix ./env.nix
./utils.nix ./utils.nix

View File

@@ -2,6 +2,5 @@
{ {
environment.variables = { environment.variables = {
EDITOR = "vim"; EDITOR = "vim";
MOZ_ENABLE_WAYLAND = 1;
}; };
} }

View File

@@ -8,7 +8,7 @@
waylandFrontend = true; waylandFrontend = true;
plasma6Support = true; plasma6Support = true;
addons = with pkgs; [ addons = with pkgs; [
#fcitx5-mozc fcitx5-mozc
fcitx5-skk fcitx5-skk
]; ];
}; };

View File

@@ -5,5 +5,5 @@
networkmanager.enable = true; networkmanager.enable = true;
firewall.enable = true; firewall.enable = true;
}; };
systemd.network.wait-online.enable = false; systemd.services.NetworkManager-wait-online.enable = false;
} }

View File

@@ -28,6 +28,7 @@
nixpkgs = { nixpkgs = {
config = { config = {
allowUnfree = true; allowUnfree = true;
allowBroken = true;
}; };
}; };
} }

View File

@@ -6,8 +6,8 @@
modesetting.enable = true; modesetting.enable = true;
powerManagement.enable = false; powerManagement.enable = false;
powerManagement.finegrained = false; powerManagement.finegrained = false;
open = true;
nvidiaSettings = true; nvidiaSettings = true;
open = false;
package = config.boot.kernelPackages.nvidiaPackages.production; package = config.boot.kernelPackages.nvidiaPackages.production;
}; };
} }

View File

@@ -1,6 +1,7 @@
{ ... }: { { ... }: {
imports = [ imports = [
./cups ./cups
./docker
./flatpak ./flatpak
./libvirtd ./libvirtd
./podman ./podman

View File

@@ -15,8 +15,5 @@
docker docker
docker-compose docker-compose
docker-buildx docker-buildx
nvidia-container-toolkit
]; ];
hardware.nvidia-container-toolkit.enable = lib.lists.elem "nvidia" config.services.xserver.videoDrivers;
} }

View File

@@ -4,8 +4,8 @@
virtualisation.podman = { virtualisation.podman = {
enable = true; enable = true;
dockerCompat = true; dockerCompat = false;
dockerSocket.enable = true; dockerSocket.enable = false;
defaultNetwork.settings.dns_enabled = true; defaultNetwork.settings.dns_enabled = true;
}; };

View File

@@ -13,9 +13,28 @@
"video" "video"
"audio" "audio"
"libvirtd" "libvirtd"
"nix"
"power"
"docker"
]; ];
uid = 1000; uid = 1000;
homix = true;
}; };
users.defaultUserShell = pkgs.bash; users.defaultUserShell = pkgs.bash;
security.sudo = {
enable = true;
extraRules = [
{
commands =
builtins.map (command: {
command = "/run/current-system/sw/bin/${command}";
options = ["NOPASSWD"];
})
[ "poweroff" "reboot" "nixos-rebuild" "systemctl" "nmtui" "tailscale" ];
groups = [ "wheel" ];
}
];
};
} }

11
system/vnc/default.nix Normal file
View File

@@ -0,0 +1,11 @@
{ pkgs, lib, ... }:
let
use-vnc = pkgs.callPackage ./use-vnc-script.nix { };
in
{
environment.systemPackages = with pkgs; [
x11vnc
wayvnc
use-vnc
];
}

View File

@@ -0,0 +1,10 @@
{ pkgs, lib, ... }:
pkgs.writeShellScriptBin "use-vnc" ''
if [[ $XDG_SESSION_TYPE == "x11" ]]; then
x11vnc -display :0 &
else
wayvnc 0.0.0.0 &
fi
sudo echo $! > /var/run/use-vnc.pid
''

View File

@@ -1,2 +1,3 @@
* `packages`: packages that does not require any wrap or config * `packages`: packages that have zero to few configs and do not require any wrapping
* `wrapped`: packages that is wrapped with config * `wrapped`: packages that is wrapped with extensive config
* `homed`: packages that has configuration on common home directory.

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
chromium
];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, config, ... }:
{
home.packages = [ pkgs.firefox ];
}

View File

@@ -1,7 +0,0 @@
{ pkgs, ... }:
let
badlionClient = pkgs.callPackage ../../../pkgs/badlion-client/badlion-client.nix { };
in
{
home.packages = [ badlionClient ];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
mangohud
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
minecraft
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
gimp
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
inkscape
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
kdenlive
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
mpv
];
}

View File

@@ -1,6 +0,0 @@
{ config, pkgs, libs, ... }:
{
home.packages = with pkgs; [
obs-studio
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
vlc
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
yt-dlp
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
libreoffice-fresh
];
}

View File

@@ -1,20 +0,0 @@
{ pkgs, ... }:
let
mytex = pkgs.texliveMedium.withPackages
(ps: [
ps.biber
ps.biblatex
ps.bibtex
ps.import
ps.subfiles
ps.wrapfig
ps.collection-langjapanese
]);
in
{
home.packages = with pkgs; [
mytex
pandoc
qpdf
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
thunderbird
];
}

View File

@@ -1,10 +0,0 @@
{ pkgs, lib, ... }:
{
home.packages = with pkgs; [
alacritty
];
programs.alacritty.enable = true;
programs.alacritty.settings = {
window.opacity = lib.mkForce 0.85;
};
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
cava
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
fzf
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
keepassxc
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
owncloud-client
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
zoxide
];
}

View File

@@ -1,5 +1,7 @@
{ ... }: { { ... }: {
imports = [ imports = [
./packages ./packages
./homed
./wrapped
]; ];
} }

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.qtcreator ];
}

View File

@@ -1,6 +1,6 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
python3Full python313Full
]; ];
} }

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
dbeaver-bin
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
firefox-devedition-bin
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
gitui
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
tldr
];
}

8
user/homed/default.nix Normal file
View File

@@ -0,0 +1,8 @@
{ ... }:
{
imports = [
./git
./profile
./xmonad
];
}

View File

@@ -0,0 +1,19 @@
{ config, pkgs, userSettings, ... }:
{
environment.systemPackages = with pkgs; [
git
gh
];
homix.".gitconfig".text = ''
[user]
email = ${userSettings.email-dev}
name = ${userSettings.name}
[credential "https://github.com"]
helper =
helper = ${pkgs.gh}/bin/gh auth git-credential
[credential "https://gist.github.com"]
helper =
helper = ${pkgs.gh}/bin/gh auth git-credential
'';
}

View File

@@ -0,0 +1,4 @@
{ config, ... }:
{
homix.".profile".source = ./profile;
}

View File

@@ -0,0 +1,18 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
xmobar
dunst
networkmanagerapplet
rofi
feh
pavucontrol
xorg.xkill
xdg-utils
xdg-desktop-portal
xdg-desktop-portal-gtk
];
homix.".config/xmonad/xmonad.hs".source = ./xmonad.hs;
homix.".config/xmobar/xmobarrc".source = ./xmobarrc;
}

View File

@@ -0,0 +1,33 @@
Config {
font = "IPAGothic 9",
bgColor = "black",
fgColor = "#646464",
position = Top,
border = BottomB,
borderColor = "#646464",
sepChar = "%",
alignSep = "}{",
template = "%multicpu% | %coretemp% | %memory% | %dynnetwork% }{ %date%",
lowerOnStart = True,
hideOnStart = False,
allDesktops = True,
overrideRedirect = True,
pickBroadest = False,
persistent = True,
commands =
[
Run DynNetwork [ "--template", "<dev>: <tx>kB/s|<rx>kB/s",
"--Low", "1000", -- units: B/s
"--High", "5000", -- units: B/s
"--low", "darkgreen",
"--normal", "darkorange",
"--high", "darkred" ] 10,
Run MultiCpu [
"--template", "Cpu: <total0>C|<core1>C"
] 10,
]
}

335
user/homed/xmonad/xmonad.hs Normal file
View File

@@ -0,0 +1,335 @@
--
-- xmonad example config file.
--
-- A template showing all available configuration hooks,
-- and how to override the defaults in your own xmonad.hs conf file.
--
-- Normally, you'd only override those defaults you care about.
--
import XMonad
import XMonad.Hooks.DynamicLog
import Data.Monoid
import System.Exit
import qualified XMonad.StackSet as W
import qualified Data.Map as M
-- The preferred terminal program, which is used in a binding below and by
-- certain contrib modules.
--
myTerminal = "alacritty"
-- Whether focus follows the mouse pointer.
myFocusFollowsMouse :: Bool
myFocusFollowsMouse = True
-- Whether clicking on a window to focus also passes the click to the window
myClickJustFocuses :: Bool
myClickJustFocuses = False
-- Width of the window border in pixels.
--
myBorderWidth = 1
-- modMask lets you specify which modkey you want to use. The default
-- is mod1Mask ("left alt"). You may also consider using mod3Mask
-- ("right alt"), which does not conflict with emacs keybindings. The
-- "windows key" is usually mod4Mask.
--
myModMask = mod4Mask
-- The default number of workspaces (virtual screens) and their names.
-- By default we use numeric strings, but any string may be used as a
-- workspace name. The number of workspaces is determined by the length
-- of this list.
--
-- A tagging example:
--
-- > workspaces = ["web", "irc", "code" ] ++ map show [4..9]
--
myWorkspaces = ["term", "web", "code", "debug", "docs"] ++ map show [6..9]
-- Border colors for unfocused and focused windows, respectively.
--
myNormalBorderColor = "#dddddd"
myFocusedBorderColor = "#ff0000"
------------------------------------------------------------------------
-- Key bindings. Add, modify or remove key bindings here.
--
myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
-- launch a terminal
[ ((modm .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf)
-- launch dmenu
, ((modm, xK_p ), spawn "rofi -show drun")
-- close focused window
, ((modm .|. shiftMask, xK_c ), kill)
-- Rotate through the available layout algorithms
, ((modm, xK_space ), sendMessage NextLayout)
-- Reset the layouts on the current workspace to default
, ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
-- Resize viewed windows to the correct size
, ((modm, xK_n ), refresh)
-- Move focus to the next window
, ((modm, xK_Tab ), windows W.focusDown)
-- Move focus to the next window
, ((modm, xK_j ), windows W.focusDown)
-- Move focus to the previous window
, ((modm, xK_k ), windows W.focusUp )
-- Move focus to the master window
, ((modm, xK_m ), windows W.focusMaster )
-- Swap the focused window and the master window
, ((modm, xK_Return), windows W.swapMaster)
-- Swap the focused window with the next window
, ((modm .|. shiftMask, xK_j ), windows W.swapDown )
-- Swap the focused window with the previous window
, ((modm .|. shiftMask, xK_k ), windows W.swapUp )
-- Shrink the master area
, ((modm, xK_h ), sendMessage Shrink)
-- Expand the master area
, ((modm, xK_l ), sendMessage Expand)
-- Push window back into tiling
, ((modm, xK_t ), withFocused $ windows . W.sink)
-- Increment the number of windows in the master area
, ((modm , xK_comma ), sendMessage (IncMasterN 1))
-- Deincrement the number of windows in the master area
, ((modm , xK_period), sendMessage (IncMasterN (-1)))
-- Toggle the status bar gap
-- Use this binding with avoidStruts from Hooks.ManageDocks.
-- See also the statusBar function from Hooks.DynamicLog.
--
-- , ((modm , xK_b ), sendMessage ToggleStruts)
-- Quit xmonad
, ((modm .|. shiftMask, xK_q ), io exitSuccess)
-- Restart xmonad
, ((modm , xK_q ), spawn "xmonad --recompile; xmonad --restart")
-- Run xmessage with a summary of the default keybindings (useful for beginners)
, ((modm .|. shiftMask, xK_slash ), xmessage help)
]
++
--
-- mod-[1..9], Switch to workspace N
-- mod-shift-[1..9], Move client to workspace N
--
[((m .|. modm, k), windows $ f i)
| (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
++
--
-- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
-- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
--
[((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f))
| (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
, (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
------------------------------------------------------------------------
-- Mouse bindings: default actions bound to mouse events
--
myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList
-- mod-button1, Set the window to floating mode and move by dragging
[ ((modm, button1), \w -> focus w >> mouseMoveWindow w
>> windows W.shiftMaster)
-- mod-button2, Raise the window to the top of the stack
, ((modm, button2), \w -> focus w >> windows W.shiftMaster)
-- mod-button3, Set the window to floating mode and resize by dragging
, ((modm, button3), \w -> focus w >> mouseResizeWindow w
>> windows W.shiftMaster)
-- you may also bind events to the mouse scroll wheel (button4 and button5)
]
------------------------------------------------------------------------
-- Layouts:
-- You can specify and transform your layouts by modifying these values.
-- If you change layout bindings be sure to use 'mod-shift-space' after
-- restarting (with 'mod-q') to reset your layout state to the new
-- defaults, as xmonad preserves your old layout settings by default.
--
-- The available layouts. Note that each layout is separated by |||,
-- which denotes layout choice.
--
myLayout = tiled ||| Mirror tiled ||| Full
where
-- default tiling algorithm partitions the screen into two panes
tiled = Tall nmaster delta ratio
-- The default number of windows in the master pane
nmaster = 1
-- Default proportion of screen occupied by master pane
ratio = 1/2
-- Percent of screen to increment by when resizing panes
delta = 3/100
------------------------------------------------------------------------
-- Window rules:
-- Execute arbitrary actions and WindowSet manipulations when managing
-- a new window. You can use this to, for example, always float a
-- particular program, or have a client always appear on a particular
-- workspace.
--
-- To find the property name associated with a program, use
-- > xprop | grep WM_CLASS
-- and click on the client you're interested in.
--
-- To match on the WM_NAME, you can use 'title' in the same way that
-- 'className' and 'resource' are used below.
--
myManageHook = composeAll
[ className =? "MPlayer" --> doFloat
, className =? "Gimp" --> doFloat
, resource =? "desktop_window" --> doIgnore
, resource =? "kdesktop" --> doIgnore ]
------------------------------------------------------------------------
-- Event handling
-- * EwmhDesktops users should change this to ewmhDesktopsEventHook
--
-- Defines a custom handler function for X Events. The function should
-- return (All True) if the default handler is to be run afterwards. To
-- combine event hooks use mappend or mconcat from Data.Monoid.
--
myEventHook = mempty
------------------------------------------------------------------------
-- Status bars and logging
-- Perform an arbitrary action on each internal state change or X event.
-- See the 'XMonad.Hooks.DynamicLog' extension for examples.
--
myLogHook = return ()
------------------------------------------------------------------------
-- Startup hook
-- Perform an arbitrary action each time xmonad starts or is restarted
-- with mod-q. Used by, e.g., XMonad.Layout.PerWorkspace to initialize
-- per-workspace layout choices.
--
-- By default, do nothing.
myStartupHook = do
spawn "feh --bg-scale ~/画像/wallpaper/85444653_p0.jpg"
------------------------------------------------------------------------
-- Now run xmonad with all the defaults we set up.
-- Run xmonad with the settings you specify. No need to modify this.
--
main :: IO()
main = do
xmobar myConfig >>= xmonad
-- A structure containing your configuration settings, overriding
-- fields in the default config. Any you don't override, will
-- use the defaults defined in xmonad/XMonad/Config.hs
--
-- No need to modify this.
--
myConfig = def {
-- simple stuff
terminal = myTerminal,
focusFollowsMouse = myFocusFollowsMouse,
clickJustFocuses = myClickJustFocuses,
borderWidth = myBorderWidth,
modMask = myModMask,
workspaces = myWorkspaces,
normalBorderColor = myNormalBorderColor,
focusedBorderColor = myFocusedBorderColor,
-- key bindings
keys = myKeys,
mouseBindings = myMouseBindings,
-- hooks, layouts
layoutHook = myLayout,
manageHook = myManageHook,
handleEventHook = myEventHook,
logHook = myLogHook,
startupHook = myStartupHook
}
-- | Finally, a copy of the default bindings in simple textual tabular format.
help :: String
help = unlines ["The default modifier key is 'alt'. Default keybindings:",
"",
"-- launching and killing programs",
"mod-Shift-Enter Launch xterminal",
"mod-p Launch dmenu",
"mod-Shift-p Launch gmrun",
"mod-Shift-c Close/kill the focused window",
"mod-Space Rotate through the available layout algorithms",
"mod-Shift-Space Reset the layouts on the current workSpace to default",
"mod-n Resize/refresh viewed windows to the correct size",
"mod-Shift-/ Show this help message with the default keybindings",
"",
"-- move focus up or down the window stack",
"mod-Tab Move focus to the next window",
"mod-Shift-Tab Move focus to the previous window",
"mod-j Move focus to the next window",
"mod-k Move focus to the previous window",
"mod-m Move focus to the master window",
"",
"-- modifying the window order",
"mod-Return Swap the focused window and the master window",
"mod-Shift-j Swap the focused window with the next window",
"mod-Shift-k Swap the focused window with the previous window",
"",
"-- resizing the master/slave ratio",
"mod-h Shrink the master area",
"mod-l Expand the master area",
"",
"-- floating layer support",
"mod-t Push window back into tiling; unfloat and re-tile it",
"",
"-- increase or decrease number of windows in the master area",
"mod-comma (mod-,) Increment the number of windows in the master area",
"mod-period (mod-.) Deincrement the number of windows in the master area",
"",
"-- quit, or restart",
"mod-Shift-q Quit xmonad",
"mod-q Restart xmonad",
"mod-[1..9] Switch to workSpace N",
"",
"-- Workspaces & screens",
"mod-Shift-[1..9] Move client to workspace N",
"mod-{w,e,r} Switch to physical/Xinerama screens 1, 2, or 3",
"mod-Shift-{w,e,r} Move client to screen 1, 2, or 3",
"",
"-- Mouse bindings: default actions bound to mouse events",
"mod-button1 Set the window to floating mode and move by dragging",
"mod-button2 Raise the window to the top of the stack",
"mod-button3 Set the window to floating mode and resize by dragging"]

View File

@@ -0,0 +1,6 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
cava
];
}

View File

@@ -1,24 +1,29 @@
{ ... }: { { ... }: {
imports = [ imports = [
./cava
./chromium ./chromium
./dbeaver ./dbeaver
./firefox ./firefox
./firefox-dev-edition ./firefox-dev-edition
./freecad
./fzf
./gimp ./gimp
./gitui ./gitui
./inkscape ./inkscape
./kdenlive ./kdenlive
./keepassxc ./keepassxc
./kicad
./libreoffice-fresh ./libreoffice-fresh
./mangohud ./mangohud
./minecraft
./mpv ./mpv
./obs-studio ./obs-studio
./owncloud-client ./owncloud-client
./pandoc
./qtcreator ./qtcreator
./thunderbird ./thunderbird
./tldr ./tldr
./vlc ./vlc
./yt-dlp ./yt-dlp
./zoxide
]; ];
} }

View File

@@ -3,4 +3,8 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
firefox-devedition-bin firefox-devedition-bin
]; ];
environment.variables = {
MOZ_ENABLE_WAYLAND = 1;
};
} }

View File

@@ -3,4 +3,8 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
firefox firefox
]; ];
environment.variables = {
MOZ_ENABLE_WAYLAND = 1;
};
} }

View File

@@ -0,0 +1,3 @@
{ pkgs, ... }: {
environment.systemPackages = [ pkgs.freecad ];
}

View File

@@ -0,0 +1,16 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
fzf
];
environment.variables = {
FZF_ALT_C_OPTS = ''
--walker-skip .git,node_modules,target
--preview 'tree -C {}'
'';
FZF_COMPLETION_OPTS = "--border --info=inline";
FZF_COMPLETION_PATH_OPTS = "--walker file,dir,follow,hidden";
FZF_COMPLETION_DIR_OPTS = "--walker dir,follow";
};
}

View File

@@ -1,6 +1,6 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
kdenlive kdePackages.kdenlive
]; ];
} }

View File

@@ -0,0 +1,3 @@
{ pkgs, ... }: {
environment.systemPackages = [ pkgs.kicad ];
}

View File

@@ -0,0 +1,6 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
pandoc
];
}

View File

@@ -0,0 +1,6 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
zoxide
];
}

View File

@@ -1,4 +0,0 @@
{ config, ... }:
{
home.file.".profile".source = ./.profile;
}

View File

@@ -1,25 +0,0 @@
{ config, pkgs, ... }:
let
lsCmd = "eza -la --git -s type";
in
{
home.packages = with pkgs; [
bash
];
programs.bash = {
enable = true;
shellAliases = {
search-pkg = "nix search -I nixpkgs=flake:nixpkgs nixpkgs";
newpkg = "bash ~/.dotfiles/newpkg.sh";
rebuild = "sudo nixos-rebuild switch --flake '.#system'";
update-flake = "nix flake update";
l = lsCmd;
ls = lsCmd;
};
bashrcExtra = ''
eval "$(fzf --bash)"
eval "$(zoxide init bash)"
'';
};
}

5
user/userSettings.nix Normal file
View File

@@ -0,0 +1,5 @@
{
username = "kenryus";
name = "Kenryu Shibata";
email-dev = "kenryudev5894@gmail.com";
}

View File

@@ -0,0 +1,15 @@
{ pkgs, ... }:
let
alacrittyconf = pkgs.writeText "alacritty.toml" ''
[window]
opacity = 0.85
'';
in
pkgs.symlinkJoin {
name = "alacritty-wrapped";
paths = [ pkgs.alacritty ];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/alacritty --add-flags "--config-file ${alacrittyconf}"
'';
}

View File

@@ -0,0 +1,30 @@
{ config, pkgs, ... }:
let
lsCmd = "eza -la --git -s type";
bashrc = pkgs.writeShellScript ".bashrc" ''
[[ $- == *i* ]] || return
eval "$(fzf --bash)"
eval "$(zoxide init bash)"
HISTFILESIZE=100000
HISTSIZE=1000
alias cd=z
alias l="${lsCmd}"
alias ls="${lsCmd}"
alias update-flake="nix flake update"
if [[ ! -v BASH_COMPLETION_VERSINFO ]]; then
. "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh"
fi
'';
in
pkgs.symlinkJoin {
name = "bash-wrapped";
paths = with pkgs; [ bash bash-completion];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/bash --add-flags "--rcfile ${bashrc}"
'';
}

10
user/wrapped/default.nix Normal file
View File

@@ -0,0 +1,10 @@
{ pkgs, config, ... }:
let
packages = {
alacritty = pkgs.callPackage ./alacritty {};
bash = pkgs.callPackage ./bash {};
};
in
{
environment.systemPackages = builtins.attrValues packages;
}

View File

View File

@@ -0,0 +1,3 @@
{ pkgs, ... }:
let
fish_config = import fishinit

View File

@@ -0,0 +1,8 @@
{ pkgs, aliasStr, ... }:
pkgs.writeShellScriptBin "etc/fish/config.fish" ''
eval "$( ${pkgs.zoxide}/bin/zoxide init fish )"
${pkgs.fzf}/bin/fzf --fish | source
source ${./config.fish}
''