squash wayland commits

This commit is contained in:
Dmitriy Kholkin 2022-01-29 00:41:41 +03:00
parent 2c80906ba9
commit 1ca3d32053
41 changed files with 1059 additions and 999 deletions

283
flake.lock generated
View File

@ -1,27 +1,5 @@
{ {
"nodes": { "nodes": {
"android-nixpkgs": {
"inputs": {
"devshell": "devshell",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1636661994,
"narHash": "sha256-EQ1jTIGAtb2DCippFWPXume+j8Xw02VnT/M35Prlovc=",
"owner": "tadfisher",
"repo": "android-nixpkgs",
"rev": "3ca481a473cb07fdc25b7d4c2cdd5960391aba90",
"type": "github"
},
"original": {
"owner": "tadfisher",
"repo": "android-nixpkgs",
"type": "github"
}
},
"base16": { "base16": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
@ -88,28 +66,29 @@
"type": "gitlab" "type": "gitlab"
} }
}, },
"devshell": { "cachix": {
"locked": { "locked": {
"lastModified": 1636119665, "lastModified": 1642244250,
"narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", "narHash": "sha256-vWpUEqQdVP4srj+/YLJRTN9vjpTs4je0cdWKXPbDItc=",
"owner": "numtide", "owner": "nixos",
"repo": "devshell", "repo": "nixpkgs",
"rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", "rev": "0fd9ee1aa36ce865ad273f4f07fdc093adeb5c00",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "numtide", "owner": "nixos",
"repo": "devshell", "ref": "nixos-21.05",
"repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"flake-utils": { "flake-utils": {
"locked": { "locked": {
"lastModified": 1634851050, "lastModified": 1638122382,
"narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", "rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -119,6 +98,21 @@
} }
}, },
"flake-utils_2": { "flake-utils_2": {
"locked": {
"lastModified": 1642700792,
"narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "846b2ae0fc4cc943637d3d1def4454213e203cba",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"locked": { "locked": {
"lastModified": 1634851050, "lastModified": 1634851050,
"narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=",
@ -140,11 +134,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1636520380, "lastModified": 1642676973,
"narHash": "sha256-gBiQ8+AQG6Dia34rqJDuqs6VFe/J1SjIhOZBeTXCKQI=", "narHash": "sha256-bLQ6n0pXYaIuNSyJnm30JGCfjmuTi59qAmj8S2ExDXI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "1e5c8e9bff00d0844bc3d25d1a98eab5633e600b", "rev": "7eb5106548eaab99ebeb21c87f93092de54fe931",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -155,10 +149,7 @@
}, },
"home-manager_2": { "home-manager_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": "nixpkgs_5"
"vscode-server-fixup",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1635839387, "lastModified": 1635839387,
@ -174,22 +165,6 @@
"type": "github" "type": "github"
} }
}, },
"i3lock-fancy-rapid": {
"flake": false,
"locked": {
"lastModified": 1618965247,
"narHash": "sha256-EoX8ts0yV/zkb4wgEh4P8noU+UraRS4w9pp+76v+Nm0=",
"owner": "yvbbrjdr",
"repo": "i3lock-fancy-rapid",
"rev": "6eeebd4caa177b82fa5010b5e8828cce3f89fb97",
"type": "github"
},
"original": {
"owner": "yvbbrjdr",
"repo": "i3lock-fancy-rapid",
"type": "github"
}
},
"lowdown-src": { "lowdown-src": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -209,11 +184,11 @@
"materia-theme": { "materia-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1620818711, "lastModified": 1638461758,
"narHash": "sha256-0eCAfm/MWXv6BbCl2vbVbvgv8DiUH09TAUhoKq7Ow0k=", "narHash": "sha256-+E8eJQcDw4F12MmGrCoFUeGFZzYZWQtY7PVhXVAZRFY=",
"owner": "nana-4", "owner": "nana-4",
"repo": "materia-theme", "repo": "materia-theme",
"rev": "76cac96ca7fe45dc9e5b9822b0fbb5f4cad47984", "rev": "af63425f9bbb2ac9bc4853a4357457d743c65308",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -248,50 +223,38 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1636573809, "lastModified": 1642777172,
"narHash": "sha256-fZqSolh+RfJnqK9zR9TFEMFII+ayo4V9DA21xuI9nhA=", "narHash": "sha256-Sh37PkGIiMhhaiM33+TvacbgQHtg93YITMY0orGJ7y8=",
"owner": "NixOS", "owner": "nixos",
"repo": "nix", "repo": "nix",
"rev": "52a3b2ee6367306a3f17fe9a2d0e2e4096852e05", "rev": "5f08db69d18ea5b868cbb58993822e7dd0307518",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nix", "owner": "nixos",
"type": "indirect" "repo": "nix",
}
},
"nix-direnv": {
"flake": false,
"locked": {
"lastModified": 1634795676,
"narHash": "sha256-p2xWs0I1hrZLiWU1P4cCGNSRuhRsbTFxsMYNVWocS4I=",
"owner": "nix-community",
"repo": "nix-direnv",
"rev": "a3d08b6c8fa2a976aba430c733f54cf97d9046b0",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-direnv",
"type": "github" "type": "github"
} }
}, },
"nixos-rocm": { "nix-alien": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3" "flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"poetry2nix": "poetry2nix"
}, },
"locked": { "locked": {
"lastModified": 1630800478, "lastModified": 1642257542,
"narHash": "sha256-dHaXN5bdf1RTK9YpYscflmdBqz2XV01Lit0xXRjLDkc=", "narHash": "sha256-znJjO+22bmYIcMvXTNoxkGrPyCEKhjNpwu/R4gLuKYY=",
"owner": "nixos-rocm", "owner": "thiagokokada",
"repo": "nixos-rocm", "repo": "nix-alien",
"rev": "cb12dc5cf144469b39f47b6be2e162f3202b142f", "rev": "039e009b74b4310986696e28808342741079c7ee",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos-rocm", "owner": "thiagokokada",
"ref": "4.3.x", "repo": "nix-alien",
"repo": "nixos-rocm",
"type": "github" "type": "github"
} }
}, },
@ -325,13 +288,28 @@
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgs-21_11": {
"locked": {
"lastModified": 1638371214,
"narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a640d8394f34714578f3e6335fc767d0755d78f9",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-21.11",
"type": "indirect"
}
},
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1636683649, "lastModified": 1642799162,
"narHash": "sha256-4wDfn9pmGX5WBEttGxYVYliZm2zeZeBLl0ytowHnvXE=", "narHash": "sha256-6KJlDYBM2YUfHyjn3J3iCmNpjKIBUfmenfAGtmVWLoI=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "77e7d796b838eae999b7649495770345b54825d2", "rev": "af1309ca38c3d727e5100c18f66f19cf9c0530be",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -344,11 +322,11 @@
"nixpkgs-mozilla": { "nixpkgs-mozilla": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1636569584, "lastModified": 1638887313,
"narHash": "sha256-iDFogua24bhFJZSxG/jhZbbNxDXuKP9S/pyRIYzrRPM=", "narHash": "sha256-FMYV6rVtvSIfthgC1sK1xugh3y7muoQcvduMdriz4ag=",
"owner": "mozilla", "owner": "mozilla",
"repo": "nixpkgs-mozilla", "repo": "nixpkgs-mozilla",
"rev": "9f70f86d73fa97e043bebeb58e5676d157069cfb", "rev": "7c1e8b1dd6ed0043fb4ee0b12b815256b0b9de6f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -375,17 +353,38 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1632411313, "lastModified": 1642707142,
"narHash": "sha256-lekODc44lVo9/0EwGiX6LoEt2KhiPdcfNopealMJ7n4=", "narHash": "sha256-BzH6xhnkn52yF4+A8C8slWFQRMInS5VYlzrH/rN1bnA=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "51bcdc4cdaac48535dabf0ad4642a66774c609ed", "rev": "6f07605b6916abee5435ea1145a7541299a87c1b",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-21.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "51bcdc4cdaac48535dabf0ad4642a66774c609ed", "type": "github"
}
},
"nixpkgs-wayland": {
"inputs": {
"cachix": "cachix",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1642775155,
"narHash": "sha256-yQMXrsAxYTbrSr5DGpCsyrWIeBbs/f0S9Uc0/fUABHo=",
"owner": "nix-community",
"repo": "nixpkgs-wayland",
"rev": "a38c5dfa2998e6dddd39a5e119672110a91b79a6",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs-wayland",
"type": "github" "type": "github"
} }
}, },
@ -406,27 +405,26 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1630761588, "lastModified": 1642799162,
"narHash": "sha256-7GXckvZy7DGh2KIyfdArqwnyeSc5Owy1fumEDQyd8eY=", "narHash": "sha256-6KJlDYBM2YUfHyjn3J3iCmNpjKIBUfmenfAGtmVWLoI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a51aa6523bd8ee985bc70987909eff235900197a", "rev": "af1309ca38c3d727e5100c18f66f19cf9c0530be",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1636443933, "lastModified": 1642635915,
"narHash": "sha256-ABJmNQdzFWWxaqkb0C0kd9f/MmUtmnQrxm9sZPhgm/s=", "narHash": "sha256-vabPA32j81xBO5m3+qXndWp5aqepe+vu96Wkd9UnngM=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9e70e9f732fbb15872cb4ea11bd43c14328a0b69", "rev": "6d8215281b2f87a5af9ed7425a26ac575da0438f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -436,14 +434,46 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": {
"locked": {
"lastModified": 1641528457,
"narHash": "sha256-FyU9E63n1W7Ql4pMnhW2/rO9OftWZ37pLppn/c1aisY=",
"path": "/nix/store/pwz0d92vl5hjrvhiri3qzazxjnf1r8wy-source",
"rev": "ff377a78794d412a35245e05428c8f95fef3951f",
"type": "path"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"poetry2nix": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1642215333,
"narHash": "sha256-hOs6lr62ITT8gAnpj5C248K0PW4IrCuXzgoan+VUgiM=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "7b5c8e3b838d534e0d4dcaa6bbe6530086ebf407",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
}
},
"qbittorrent-ee": { "qbittorrent-ee": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1635705887, "lastModified": 1641579458,
"narHash": "sha256-MiAfqcalfk6CWBtLtENnwc0W17MLSZOoLuzfu/xP4Pw=", "narHash": "sha256-7jbG8kQkLyKP03Ta2LNIEctAEbVb4o/opWiaYP15ZAc=",
"owner": "c0re100", "owner": "c0re100",
"repo": "qBittorrent-Enhanced-Edition", "repo": "qBittorrent-Enhanced-Edition",
"rev": "a3955360cd527a641d4623fd84609bc072c574e2", "rev": "fd047415f4fa9d99edabd4a0cb285bb8d30c8c50",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -454,21 +484,19 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"android-nixpkgs": "android-nixpkgs",
"base16": "base16", "base16": "base16",
"base16-horizon-scheme": "base16-horizon-scheme", "base16-horizon-scheme": "base16-horizon-scheme",
"base16-tokyonight-scheme": "base16-tokyonight-scheme", "base16-tokyonight-scheme": "base16-tokyonight-scheme",
"home-manager": "home-manager", "home-manager": "home-manager",
"i3lock-fancy-rapid": "i3lock-fancy-rapid",
"materia-theme": "materia-theme", "materia-theme": "materia-theme",
"multimc-cracked": "multimc-cracked", "multimc-cracked": "multimc-cracked",
"nix": "nix", "nix": "nix",
"nix-direnv": "nix-direnv", "nix-alien": "nix-alien",
"nixos-rocm": "nixos-rocm",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_4",
"nixpkgs-master": "nixpkgs-master", "nixpkgs-master": "nixpkgs-master",
"nixpkgs-mozilla": "nixpkgs-mozilla", "nixpkgs-mozilla": "nixpkgs-mozilla",
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"nixpkgs-wayland": "nixpkgs-wayland",
"qbittorrent-ee": "qbittorrent-ee", "qbittorrent-ee": "qbittorrent-ee",
"rycee": "rycee", "rycee": "rycee",
"simple-nixos-mailserver": "simple-nixos-mailserver", "simple-nixos-mailserver": "simple-nixos-mailserver",
@ -482,11 +510,11 @@
"rycee": { "rycee": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1636603333, "lastModified": 1642777133,
"narHash": "sha256-VnTFUNJZE2eNnjsPgTVqqHQtcHXe0udFBHPqXljRLwE=", "narHash": "sha256-sJuwCblryqBK4oTsq/MSZIpKgaB4XpfHCfG1kzmKbHM=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "12ffa46d3f18d1a439a63fb78a83db8e9637a12f", "rev": "fdd004510ccd5fe3fd63a38124578a58b2b21c8e",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -502,14 +530,15 @@
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-21_05": "nixpkgs-21_05", "nixpkgs-21_05": "nixpkgs-21_05",
"nixpkgs-21_11": "nixpkgs-21_11",
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1636315032, "lastModified": 1638911354,
"narHash": "sha256-hbMXt0/PYssN92hfZwIoAnavyBbcLEpHJS3eMAK6H6c=", "narHash": "sha256-hNhzLOp+dApEY15vwLAQZu+sjEQbJcOXCaSfAT6lpsQ=",
"owner": "simple-nixos-mailserver", "owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver", "repo": "nixos-mailserver",
"rev": "6e8142862f23ab99e1cc57838c02b733361e8d50", "rev": "6e3a7b2ea6f0d68b82027b988aa25d3423787303",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -535,7 +564,7 @@
}, },
"vscode-server-fixup": { "vscode-server-fixup": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_3",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
@ -575,11 +604,11 @@
"zsh-cod": { "zsh-cod": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1627976995, "lastModified": 1642757985,
"narHash": "sha256-CJDZK/3TCk+Zb6IZk41L1crboED4FZFhrSJJmHF6yBk=", "narHash": "sha256-gn1MXy2kRCZqYewsxr+ZRwhxwUlD6TM1bt0mRDYnRZ8=",
"owner": "dim-an", "owner": "dim-an",
"repo": "cod", "repo": "cod",
"rev": "5e815b558bbc1c2a48df090c9ab6d0dad8e6f551", "rev": "de10c9bfff394dd59f302515776f1413f26e5a49",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -607,11 +636,11 @@
"zsh-you-should-use": { "zsh-you-should-use": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1628094370, "lastModified": 1638894143,
"narHash": "sha256-hTJjeJT9szHl9HXDHaSEmkv3wOARORs7sQA8/MjkfIo=", "narHash": "sha256-g4Fw0TwyajZnWQ8fvJvobyt98nRgg08uxK6yNEABo8Y=",
"owner": "MichaelAquilina", "owner": "MichaelAquilina",
"repo": "zsh-you-should-use", "repo": "zsh-you-should-use",
"rev": "ccc7e7f75bd7169758a1c931ea574b96b71aa9a0", "rev": "773ae5f414b296b4100f1ab6668ecffdab795128",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -4,17 +4,16 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-master.url = "github:nixos/nixpkgs/master"; nixpkgs-master.url = "github:nixos/nixpkgs/master";
# nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-21.05"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-21.11";
nixpkgs-stable.url = "github:nixos/nixpkgs/51bcdc4cdaac48535dabf0ad4642a66774c609ed"; nixpkgs-wayland = {
url = "github:nix-community/nixpkgs-wayland";
inputs.nixpkgs.follows = "nixpkgs";
};
nix.url = "github:nixos/nix"; nix.url = "github:nixos/nix";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
android-nixpkgs = {
url = "github:tadfisher/android-nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
base16.url = "github:alukardbf/base16-nix"; base16.url = "github:alukardbf/base16-nix";
base16-horizon-scheme = { base16-horizon-scheme = {
url = "github:michael-ball/base16-horizon-scheme"; url = "github:michael-ball/base16-horizon-scheme";
@ -24,10 +23,6 @@
url = "github:alukardbf/base16-tokyonight-scheme"; url = "github:alukardbf/base16-tokyonight-scheme";
flake = false; flake = false;
}; };
i3lock-fancy-rapid = {
url = "github:yvbbrjdr/i3lock-fancy-rapid";
flake = false;
};
materia-theme = { materia-theme = {
url = "github:nana-4/materia-theme"; url = "github:nana-4/materia-theme";
flake = false; flake = false;
@ -40,19 +35,14 @@
submodules = true; submodules = true;
type = "git"; type = "git";
}; };
nixos-rocm = { nix-alien = {
url = "github:nixos-rocm/nixos-rocm/4.3.x"; url = "github:thiagokokada/nix-alien";
# inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixpkgs-mozilla = { nixpkgs-mozilla = {
url = "github:mozilla/nixpkgs-mozilla"; url = "github:mozilla/nixpkgs-mozilla";
flake = false; flake = false;
}; };
nix-direnv = {
url = "github:nix-community/nix-direnv";
flake = false;
# inputs.nixpkgs.follows = "nixpkgs";
};
qbittorrent-ee = { qbittorrent-ee = {
url = "github:c0re100/qBittorrent-Enhanced-Edition"; url = "github:c0re100/qBittorrent-Enhanced-Edition";
flake = false; flake = false;

View File

@ -28,12 +28,4 @@
deviceSpecific.wireguard.enable = true; deviceSpecific.wireguard.enable = true;
hardware.video.hidpi.enable = lib.mkForce false; hardware.video.hidpi.enable = lib.mkForce false;
services.xserver.config = ''
Section "InputClass"
Identifier "C-Media USB Headphone Set"
MatchUSBID "0d8c:000c"
Option "Ignore" "true"
EndSection
'';
} }

Binary file not shown.

View File

@ -45,6 +45,23 @@ let
}; };
}; };
activate-secrets = pkgs.writeShellScriptBin "activate-secrets" ''
set -euo pipefail
export PATH="${with pkgs; lib.makeBinPath [ gnupg git coreutils ]}:/run/wrappers/bin/:$PATH"
export SHELL=${pkgs.runtimeShell}
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
if [ -d "${password-store}/.git" ]; then
cd "${password-store}"; git pull
else
echo "${lib.escapeShellArg config.secretsConfig.repo}"
git clone ${
lib.escapeShellArg config.secretsConfig.repo
} "${password-store}"
fi
cat ${password-store}/spotify.gpg | ${pkgs.gnupg}/bin/gpg --decrypt > /dev/null
[ ! -z "${allServices}" ] && sudo systemctl restart ${allServices}
'';
decrypt = name: cfg: decrypt = name: cfg:
with cfg; { with cfg; {
"${name}-secrets" = rec { "${name}-secrets" = rec {
@ -95,23 +112,6 @@ let
(builtins.attrNames config.secrets-envsubst) (builtins.attrNames config.secrets-envsubst)
++ map (name: "${name}-secrets.service") ++ map (name: "${name}-secrets.service")
(builtins.attrNames config.secrets)); (builtins.attrNames config.secrets));
activate-secrets = pkgs.writeShellScriptBin "activate-secrets" ''
set -euo pipefail
# Make sure card is available and unlocked
# echo fetch | gpg --card-edit --no-tty --command-fd=0
# ${pkgs.gnupg}/bin/gpg --card-status
if [ -d "${password-store}/.git" ]; then
cd "${password-store}"; ${pkgs.git}/bin/git pull
else
${pkgs.git}/bin/git clone ${lib.escapeShellArg config.secretsConfig.repo} "${password-store}"
fi
ln -sf ${
pkgs.writeShellScript "push" "${pkgs.git}/bin/git push origin master"
} "${password-store}/.git/hooks/post-commit"
cat ${password-store}/spotify.gpg | ${pkgs.gnupg}/bin/gpg --decrypt > /dev/null
sudo systemctl restart ${allServices}
'';
in { in {
options.secrets = lib.mkOption { options.secrets = lib.mkOption {
type = attrsOf (submodule secret); type = attrsOf (submodule secret);
@ -121,15 +121,13 @@ in {
options.secretsConfig = { options.secretsConfig = {
repo = lib.mkOption { repo = lib.mkOption {
type = str; type = str;
default = "ssh://git@github.com/AlukardBF/pass"; default = "git@github.com:AlukardBF/pass.git";
}; };
}; };
config.systemd.services = config.systemd.services =
mkMerge (concatLists (mapAttrsToList mkServices config.secrets)); mkMerge (concatLists (mapAttrsToList mkServices config.secrets));
config.environment.systemPackages = [ activate-secrets ];
config.security.sudo.extraRules = [{ config.security.sudo.extraRules = [{
users = [ "alukard" ]; users = [ "alukard" ];
commands = [{ commands = [{
@ -139,13 +137,43 @@ in {
}]; }];
config.home-manager.users.alukard = { config.home-manager.users.alukard = {
xsession.windowManager.i3 = { systemd.user.services.activate-secrets = {
config.startup = [{ command = "activate-secrets"; }]; Service = {
ExecStart = "${activate-secrets}/bin/activate-secrets";
Type = "oneshot";
};
Unit = {
PartOf = [ "graphical-session-pre.target" ];
};
Install.WantedBy = [ "graphical-session-pre.target" ];
};
systemd.user.services.pass-store-sync = {
Service = {
Environment = [
"PASSWORD_STORE_DIR=${password-store}"
"PATH=${with pkgs; lib.makeBinPath [ pass inotify-tools gnupg git ]}"
];
ExecStart = toString (pkgs.writeShellScript "pass-store-sync" ''
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
while inotifywait "$PASSWORD_STORE_DIR" -r -e move -e close_write -e create -e delete --exclude .git; do
sleep 1
pass git add --all
pass git commit -m "$(date +%F)_$(date+%T)"
pass git pull --rebase
pass git push
done
'');
};
Unit = rec {
After = [ "activate-secrets.service" ];
Wants = After;
};
Install.WantedBy = [ "graphical-session-pre.target" ];
}; };
programs.password-store = { programs.password-store = {
enable = true; enable = true;
package = pkgs.pass-nodmenu; package = pkgs.pass-wayland;
settings.PASSWORD_STORE_DIR = password-store; settings.PASSWORD_STORE_DIR = password-store;
}; };
}; };
} }

View File

@ -38,7 +38,7 @@
messenger.cmd messenger.cmd
"${pkgs.keepassxc}/bin/keepassxc --keyfile=/home/alukard/.passwords.key /home/alukard/nixos-config/misc/Passwords.kdbx" "${pkgs.keepassxc}/bin/keepassxc --keyfile=/home/alukard/.passwords.key /home/alukard/nixos-config/misc/Passwords.kdbx"
"${term.cmd} -e spt" "${term.cmd} -e spt"
"${pkgs.feh}/bin/feh --bg-fill ${/. + ../misc/wallpaper}" # "${pkgs.feh}/bin/feh --bg-fill ${/. + ../misc/wallpaper}"
]; ];
environment.sessionVariables = { environment.sessionVariables = {

View File

@ -4,6 +4,8 @@
enable = true; enable = true;
config = { config = {
vo = "gpu"; vo = "gpu";
gpu-context = "wayland";
save-position-on-quit = "yes";
hwdec = if config.deviceSpecific.devInfo.gpu.vendor == "nvidia" then hwdec = if config.deviceSpecific.devInfo.gpu.vendor == "nvidia" then
"vdpau" "vdpau"
else else
@ -11,12 +13,13 @@
ytdl-format = if config.deviceSpecific.isLaptop then ytdl-format = if config.deviceSpecific.isLaptop then
"bestvideo[height<=?1080]+bestaudio/best" "bestvideo[height<=?1080]+bestaudio/best"
else else
"bestvideo+bestaudio/best"; "bestvideo[height<=?2160]+bestaudio/best";
}; };
}; };
home-manager.users.alukard.home.file.".config/youtube-dl/config" = { # TODO: --cookies-from-browser
home-manager.users.alukard.home.file.".config/yt-dlp/config" = {
text = '' text = ''
--cookie=/home/alukard/.config/yt-cookie --cookies=/home/alukard/.config/yt-cookie
--mark-watched --mark-watched
''; '';
}; };

View File

@ -9,12 +9,15 @@ with config.deviceSpecific; {
exa exa
fd fd
ffmpeg.bin ffmpeg.bin
git-filter-repo # git-filter-repo
# glib.bin # gio glib
# gptfdisk # gptfdisk
libqalculate libqalculate
lm_sensors lm_sensors
lnav
nix-alien
nix-prefetch-git nix-prefetch-git
nix-index-update
p7zip p7zip
# (p7zip.override { enableUnfree = true; }) # (p7zip.override { enableUnfree = true; })
pciutils pciutils
@ -24,12 +27,11 @@ with config.deviceSpecific; {
samba samba
sd sd
tealdeer tealdeer
tidal-dl # tidal-dl
unzip unzip
usbutils usbutils
wget wget
xclip yt-dlp
youtube-dl
zip zip
# tui # tui
@ -45,39 +47,45 @@ with config.deviceSpecific; {
# gui # gui
audacity audacity
blueman blueman
bookworm # bookworm
discord discord
element-desktop element-desktop
feh feh
gnome.eog
gparted gparted
keepassxc keepassxc
persepolis # persepolis
pinta pinta
qbittorrent qbittorrent
qimgv
quodlibet quodlibet
scrcpy scrcpy
system-config-printer system-config-printer
tdesktop tdesktop
xarchiver xarchiver
xfce4-14.thunar
xfce4-14.xfce4-taskmanager
youtube-to-mpv youtube-to-mpv
zathura zathura
zoom-us
# libsForQt5.networkmanager-qt
# networkmanagerapplet
xdg-utils
# awesome-shell # awesome-shell
lnav curlie
duf
zsh-z
] ++ lib.optionals (!(isVM || isISO)) [ ] ++ lib.optionals (!(isVM || isISO)) [
libreoffice libreoffice
] ++ lib.optionals isGaming [ ] ++ lib.optionals isGaming [
# ceserver # ceserver
# ckan # ckan
gamescope
goverlay goverlay
multimc multimc
lutris lutris
obs-studio obs-studio
reshade-shaders reshade-shaders
# (retroarch.override { cores = [ libretro.genesis-plus-gx ]; })
protontricks
vkBasalt vkBasalt
# wine # wine
# winetricks # winetricks

View File

@ -0,0 +1,6 @@
{ config, pkgs, lib, ... }: {
config = lib.mkIf (config.device == "AMD-Workstation") {
services.ratbagd.enable = true;
home-manager.users.alukard.home.packages = [ pkgs.piper ];
};
}

View File

@ -5,13 +5,14 @@ let
in in
{ {
defaultApplications.dmenu = { defaultApplications.dmenu = {
cmd = "${pkgs.rofi}/bin/rofi -show run"; cmd = "${pkgs.rofi-wayland}/bin/rofi -show run";
desktop = "rofi"; desktop = "rofi";
}; };
home-manager.users.alukard = { home-manager.users.alukard = {
programs.rofi = { programs.rofi = {
enable = true; enable = true;
package = pkgs.rofi-wayland;
font = "${thm.fonts.mono.family} ${thm.fontSizes.header.str}"; font = "${thm.fonts.mono.family} ${thm.fontSizes.header.str}";
terminal = config.defaultApplications.term.cmd; terminal = config.defaultApplications.term.cmd;
theme = "${themeFile}"; theme = "${themeFile}";

View File

@ -1,90 +0,0 @@
{ config, lib, pkgs, ... }:
with config.lib.base16.theme;
with config.deviceSpecific;
let
thm = config.lib.base16.theme;
in
{
defaultApplications.term = lib.mkIf (isISO || isVM) {
cmd = "${pkgs.rxvt-unicode}/bin/urxvt";
desktop = "urxvt";
};
home-manager.users.alukard = lib.mkIf (isISO || isVM) {
programs.urxvt = {
enable = true;
extraConfig = {
"font" = "xft:${thm.fonts.powerline.family}:style=Regular:size=${thm.fontSizes.small.str}";
"boldFont" = "xft:${thm.fonts.powerline.family}:style=Bold:size=${thm.fontSizes.small.str}";
"italicFont" = "xft:${thm.fonts.powerline.family}:style=Italic:size=${thm.fontSizes.small.str}";
"boldItalicfont" = "xft:${thm.fonts.powerline.family}:style=Bold Italic:size=${thm.fontSizes.small.str}";
"letterSpace" = "0";
"lineSpace" = "0";
"geometry" = "92x24";
"internalBorder" = "24";
"cursorBlink" = "true";
"cursorUnderline" = "false";
"saveline" = "2048";
"scrollBar" = "false";
"scrollBar_right" = "false";
"urgentOnBell" = "true";
"depth" = "24";
"iso14755" = "false";
"keysym.Shift-Up" = "command:\\033]720;1\\007";
"keysym.Shift-Down" = "command:\\033]721;1\\007";
"keysym.Control-Up" = "\\033[1;5A";
"keysym.Control-Down" = "\\033[1;5B";
"keysym.Control-Right" = "\\033[1;5C";
"keysym.Control-Left" = "\\033[1;5D";
"foreground" = "#${thm.base05-hex}";
"background" = "#${thm.base00-hex}";
"cursorColor" = "#${thm.base05-hex}";
"color0" = "#${thm.base00-hex}";
"color1" = "#${thm.base08-hex}";
"color2" = "#${thm.base0B-hex}";
"color3" = "#${thm.base0A-hex}";
"color4" = "#${thm.base0D-hex}";
"color5" = "#${thm.base0E-hex}";
"color6" = "#${thm.base0C-hex}";
"color7" = "#${thm.base05-hex}";
"color8" = "#${thm.base03-hex}";
"color9" = "#${thm.base08-hex}";
"color10" = "#${thm.base0B-hex}";
"color11" = "#${thm.base0A-hex}";
"color12" = "#${thm.base0D-hex}";
"color13" = "#${thm.base0E-hex}";
"color14" = "#${thm.base0C-hex}";
"color15" = "#${thm.base07-hex}";
"color16" = "#${thm.base09-hex}";
"color17" = "#${thm.base0F-hex}";
"color18" = "#${thm.base01-hex}";
"color19" = "#${thm.base02-hex}";
"color20" = "#${thm.base04-hex}";
"color21" = "#${thm.base06-hex}";
};
};
xresources.properties = with config.lib.base16.theme; {
"*foreground" = "#${base05-hex}";
"*background" = "#${base00-hex}";
"*cursorColor" = "#${base05-hex}";
"*color0" = "#${base00-hex}";
"*color1" = "#${base08-hex}";
"*color2" = "#${base0B-hex}";
"*color3" = "#${base0A-hex}";
"*color4" = "#${base0D-hex}";
"*color5" = "#${base0E-hex}";
"*color6" = "#${base0C-hex}";
"*color7" = "#${base05-hex}";
"*color8" = "#${base03-hex}";
"*color9" = "#${base09-hex}";
"*color10" = "#${base01-hex}";
"*color11" = "#${base02-hex}";
"*color12" = "#${base04-hex}";
"*color13" = "#${base06-hex}";
"*color14" = "#${base0F-hex}";
"*color15" = "#${base07-hex}";
};
};
}

View File

@ -6,7 +6,6 @@
home-manager.users.alukard = { home-manager.users.alukard = {
home.packages = with pkgs; [ home.packages = with pkgs; [
# (vivaldi.override { proprietaryCodecs = true; })
((vivaldi.overrideAttrs (oldAttrs: rec { ((vivaldi.overrideAttrs (oldAttrs: rec {
buildInputs = oldAttrs.buildInputs ++ [ pkgs.libglvnd pkgs.pipewire pkgs.wayland ]; buildInputs = oldAttrs.buildInputs ++ [ pkgs.libglvnd pkgs.pipewire pkgs.wayland ];
# --enable-features=UseOzonePlatform,UseSkiaRenderer,Vulkan --ozone-platform=wayland # --enable-features=UseOzonePlatform,UseSkiaRenderer,Vulkan --ozone-platform=wayland

View File

@ -8,107 +8,127 @@ in
programs.vscode = { programs.vscode = {
enable = true; enable = true;
package = pkgs.vscode; package = pkgs.vscode;
extensions = with pkgs.vscode-extensions; ([ extensions = pkgs.vscode-utils.extensionsFromVscodeMarketplace [
alefragnani.project-manager
arrterian.nix-env-selector
bbenoist.nix
codezombiech.gitignore
coenraads.bracket-pair-colorizer-2
eamodio.gitlens
github.vscode-pull-request-github
mhutchie.git-graph
ms-vscode-remote.remote-ssh
naumovs.color-highlight
shardulm94.trailing-spaces
streetsidesoftware.code-spell-checker
tomoki1207.pdf
yzhang.markdown-all-in-one
]) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{ {
name = "awesome-flutter-snippets";
publisher = "nash";
version = "3.0.2";
sha256 = "sha256-GQ42tySMD74F0umBlfBCbcjRsop8lKn/9RrwFM40PwE=";
} {
name = "better-comments"; name = "better-comments";
publisher = "aaron-bond"; publisher = "aaron-bond";
version = "2.1.0"; version = "2.1.0";
sha256 = "sha256-l7MG2bpfTgVgC+xLal6ygbxrrRoNONzOWjs3fZeZtU4="; sha256 = "0kmmk6bpsdrvbb7dqf0d3annpg41n9g6ljzc1dh0akjzpbchdcwp";
} {
name = "Bookmarks";
publisher = "alefragnani";
version = "13.2.2";
sha256 = "17fyk8hr9ml0fx6qfyrkd0hbsb9r9s4s95w3yzly2glbwpwn5mm5";
} {
name = "project-manager";
publisher = "alefragnani";
version = "12.4.0";
sha256 = "0q6zkz7pqz2prmr01h17h9a5q6cn6bjgcxggy69c84j8h2w905wy";
} {
name = "nix-env-selector";
publisher = "arrterian";
version = "1.0.7";
sha256 = "0mralimyzhyp4x9q98x3ck64ifbjqdp8cxcami7clvdvkmf8hxhf";
} {
name = "Nix";
publisher = "bbenoist";
version = "1.0.1";
sha256 = "0zd0n9f5z1f0ckzfjr38xw2zzmcxg1gjrava7yahg5cvdcw6l35b";
} { } {
name = "better-toml"; name = "better-toml";
publisher = "bungcip"; publisher = "bungcip";
version = "0.3.2"; version = "0.3.2";
sha256 = "sha256-g+LfgjAnSuSj/nSmlPdB0t29kqTmegZB5B1cYzP8kCI="; sha256 = "08lhzhrn6p0xwi0hcyp6lj9bvpfj87vr99klzsiy8ji7621dzql3";
} {
name = "bookmarks";
publisher = "alefragnani";
version = "13.2.2";
sha256 = "sha256-pdZi+eWLPuHp94OXpIlOOS29IGgze4dNd4DWlCGa3p0=";
} {
name = "codeacejumper";
publisher = "lucax88x";
version = "3.3.2";
sha256 = "sha256-Fltl6ryBK2g2WWxV2Ru74cSYwqxgfFGclLlm8ChwRQk=";
} {
name = "dart-code";
publisher = "dart-code";
version = "3.28.0";
sha256 = "sha256-m0cZLAlVtjfvkIXlFssDQcNhqpjRrW1JTaUsohnY/14=";
} {
name = "vscode-env";
publisher = "irongeek";
version = "0.1.0";
sha256 = "sha256-URq90lOFtPCNfSIl2NUwihwRQyqgDysGmBc3NG7o7vk=";
} {
name = "flutter";
publisher = "dart-code";
version = "3.28.0";
sha256 = "sha256-3+PGSuJe32F2i1g9+/6GkcSYEMsjXZMK4xv4xPjzXvM=";
} {
name = "flutter-tree";
publisher = "marcelovelasquez";
version = "1.0.0";
sha256 = "sha256-+gQH7so9m/HvO0tDKaiNTP+2pTCvNdecJK60sgTY9CE=";
} {
name = "gruvbox-material";
publisher = "sainnhe";
version = "6.4.6";
sha256 = "sha256-rm/S4SAZ/z8Svd0wZyaYOZUxcUSMmBE0xUk+16drrZ8=";
} {
name = "vscode-hexdump";
publisher = "slevesque";
version = "1.8.1";
sha256 = "sha256-BNPRXRiM0OujxUZhBHREtaa0VrbuhhQ2CG3PUCyxga8=";
} {
name = "material-icon-theme";
publisher = "pkief";
version = "4.10.0";
sha256 = "sha256-4CzjUz/n/lQ7tLXuKEzmSkSE1jinpTZWDy11KHq7P4U=";
} { } {
name = "path-intellisense"; name = "path-intellisense";
publisher = "christian-kohler"; publisher = "christian-kohler";
version = "2.4.2"; version = "2.7.0";
sha256 = "sha256-bPemoDmhBANjbn19ThKTZEjKLbQ5SlVFJp22K4kNjag="; sha256 = "11jbaz8dlr9zmamikgii6pvbncsm61bhkipfarlqrisgfk99im9w";
} { } {
name = "plantuml"; name = "gitignore";
publisher = "jebbs"; publisher = "codezombiech";
version = "2.16.0"; version = "0.7.0";
sha256 = "sha256-E29zGwHzVTARVGKn0JHpyKx3NCBNUSUSngmUvi0Hfo8="; sha256 = "0fm4sxx1cb679vn4v85dw8dfp5x0p74m9p2b56gqkvdap0f2q351";
} { } {
name = "code-spell-checker-russian"; name = "dart-code";
publisher = "streetsidesoftware"; publisher = "Dart-Code";
version = "2.0.1"; version = "3.33.20220111";
sha256 = "sha256-GC1zQp/2BxPLrCBCgKhxHkvX0bM3OAYSvI2C9SSHthQ="; sha256 = "14jc0vh7swn2ijmgc496wjfrk5mbv4yrjpzxq3n9z1l5390sz30x";
} { } {
name = "tokyo-night"; name = "flutter";
publisher = "enkia"; publisher = "Dart-Code";
version = "0.7.9"; version = "3.32.0";
sha256 = "sha256-2+md3lkBew1u+XkAM4e7i4OMNvyyJlZA4OT3WvMUkfk="; sha256 = "02zk6889n9m4s44ygnid28mg9bghrdcj0wg8ma1g1yqx7jv554l6";
} { } {
name = "wal-theme"; name = "wal-theme";
publisher = "dlasagno"; publisher = "dlasagno";
version = "1.2.0"; version = "1.2.0";
sha256 = "sha256-X16N5ClNVLtWST64ybJUEIRo6WgDCzODhBA9ScAHI5w="; sha256 = "17130z04jg8hhj1k62q3d3lni10hajrckf1y95bbnm2d57j8spjz";
} {
name = "gitlens";
publisher = "eamodio";
version = "11.7.0";
sha256 = "0apjjlfdwljqih394ggz2d8m599pyyjrb0b4cfcz83601b7hk3x6";
} {
name = "tokyo-night";
publisher = "enkia";
version = "0.8.4";
sha256 = "15ab2k0xs8kvws8zq0irch4cvq1dc0zr3xynj0qn78zzbgwq92c7";
} {
name = "vscode-pull-request-github";
publisher = "GitHub";
version = "0.35.2022012009";
sha256 = "0rbky4cy6r0nw32pqfjj854nj9kf3f5dc6v38mf4wvzmxd5nb6bj";
} {
name = "vscode-env";
publisher = "IronGeek";
version = "0.1.0";
sha256 = "1ygfx1p38dqpk032n3x0591i274a63axh992gn6z1d45ag9bs6ji";
} {
name = "plantuml";
publisher = "jebbs";
version = "2.17.2";
sha256 = "0yxnfq34g563w96dwfirqscjfclhzr48yb9cwfjjf0c0l638x9vv";
} {
name = "codeacejumper";
publisher = "lucax88x";
version = "3.3.2";
sha256 = "02a5f0lg0rmrjjf52z30mk19ii71pcdxjmbcb4v6haw1pkm6anqn";
} {
name = "flutter-tree";
publisher = "marcelovelasquez";
version = "1.0.0";
sha256 = "08glv02b5d5f4jfdfddg62jvdzscinl2jhsb7gpz36rxrbp0f17s";
} {
name = "git-graph";
publisher = "mhutchie";
version = "1.30.0";
sha256 = "000zhgzijf3h6abhv4p3cz99ykj6489wfn81j0s691prr8q9lxxh";
} {
name = "remote-ssh";
publisher = "ms-vscode-remote";
version = "0.71.2021121615";
sha256 = "1lh08157z7lialb0dxls9fhahmf5l9wz6x2anwrnycvs512lpr1p";
} {
name = "awesome-flutter-snippets";
publisher = "Nash";
version = "3.0.2";
sha256 = "009z6k719w0sypzsk53wiard3j3d8bq9b0g9s82vw3wc4jvkc3hr";
} {
name = "color-highlight";
publisher = "naumovs";
version = "2.5.0";
sha256 = "0ri1rylg0r9r1kdc67815gjlq5fwnb26xpyziva6a40brrbh70vm";
} {
name = "material-icon-theme";
publisher = "PKief";
version = "4.11.0";
sha256 = "1l2s8j645riqjmj09i3v71s8ycin5vd6brdp35z472fnk6wyi1y6";
} {
name = "gruvbox-material";
publisher = "sainnhe";
version = "6.5.0";
sha256 = "1r9kgwrh6jjp8i6aa07prhrb398d5isf9ics4wmdbvd6k0gnzf8n";
} }
]; ];
userSettings = { userSettings = {
@ -170,6 +190,8 @@ in
"git-graph.repository.sign.commits" = true; "git-graph.repository.sign.commits" = true;
"git-graph.repository.sign.tags" = true; "git-graph.repository.sign.tags" = true;
"remote.SSH.configFile" = "/home/alukard/.ssh/remote_config"; "remote.SSH.configFile" = "/home/alukard/.ssh/remote_config";
"editor.bracketPairColorization.enabled" = true;
"editor.guides.bracketPairs" = "active";
}; };
}; };

View File

@ -3,13 +3,13 @@
nixPath = lib.mkForce [ "self=/etc/self/compat" "nixpkgs=/etc/nixpkgs" ]; nixPath = lib.mkForce [ "self=/etc/self/compat" "nixpkgs=/etc/nixpkgs" ];
binaryCaches = [ binaryCaches = [
"https://cache.nixos.org" "https://cache.nixos.org"
"https://nixos-rocm.cachix.org"
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://nixpkgs-wayland.cachix.org"
]; ];
binaryCachePublicKeys = [ binaryCachePublicKeys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nixos-rocm.cachix.org-1:VEpsf7pRIijjd8csKjFNBGzkBqOmw8H9PRmgAq14LnE="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
]; ];
registry.self.flake = inputs.self; registry.self.flake = inputs.self;

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, inputs, ... }: { pkgs, config, lib, inputs, ... }:
let let
system = "x86_64-linux"; inherit (pkgs) system;
stable = import inputs.nixpkgs-stable ({ stable = import inputs.nixpkgs-stable ({
config = config.nixpkgs.config; config = config.nixpkgs.config;
localSystem = { inherit system; }; localSystem = { inherit system; };
@ -12,8 +12,8 @@ let
in in
with lib; { with lib; {
nixpkgs.overlays = [ nixpkgs.overlays = [
inputs.android-nixpkgs.overlay
inputs.nixpkgs-wayland.overlay inputs.nixpkgs-wayland.overlay
inputs.nix-alien.overlay
(self: super: (self: super:
rec { rec {
inherit inputs; inherit inputs;
@ -21,7 +21,7 @@ with lib; {
android-emulator = self.callPackage ./packages/android-emulator.nix { }; android-emulator = self.callPackage ./packages/android-emulator.nix { };
bibata-cursors = pkgs.callPackage ./packages/bibata-cursors.nix { }; bibata-cursors = pkgs.callPackage ./packages/bibata-cursors.nix { };
ceserver = pkgs.callPackage ./packages/ceserver.nix { }; ceserver = pkgs.callPackage ./packages/ceserver.nix { };
i3lock-fancy-rapid = pkgs.callPackage ./packages/i3lock-fancy-rapid.nix { }; gamescope = pkgs.callPackage ./packages/gamescope.nix { };
ibm-plex-powerline = pkgs.callPackage ./packages/ibm-plex-powerline.nix { }; ibm-plex-powerline = pkgs.callPackage ./packages/ibm-plex-powerline.nix { };
mpris-ctl = pkgs.callPackage ./packages/mpris-ctl.nix { }; mpris-ctl = pkgs.callPackage ./packages/mpris-ctl.nix { };
multimc = pkgs.qt5.callPackage ./packages/multimc.nix { multimc-repo = inputs.multimc-cracked; }; multimc = pkgs.qt5.callPackage ./packages/multimc.nix { multimc-repo = inputs.multimc-cracked; };
@ -33,6 +33,7 @@ with lib; {
youtube-to-mpv = pkgs.callPackage ./packages/youtube-to-mpv.nix { term = config.defaultApplications.term.cmd; }; youtube-to-mpv = pkgs.callPackage ./packages/youtube-to-mpv.nix { term = config.defaultApplications.term.cmd; };
vivaldi = master.vivaldi; vivaldi = master.vivaldi;
wine = super.wineWowPackages.staging; wine = super.wineWowPackages.staging;
pass-secret-service = super.pass-secret-service.overrideAttrs (_: { installCheckPhase = null; });
qbittorrent = super.qbittorrent.overrideAttrs (old: rec { qbittorrent = super.qbittorrent.overrideAttrs (old: rec {
version = "enchanced-edition"; version = "enchanced-edition";
src = inputs.qbittorrent-ee; src = inputs.qbittorrent-ee;
@ -42,8 +43,8 @@ with lib; {
src = super.fetchFromGitHub { src = super.fetchFromGitHub {
owner = "digint"; owner = "digint";
repo = "btrbk"; repo = "btrbk";
rev = "cb38b7efa411f08fd3d7a65e19a8cef385eda0b8"; rev = "c5273a8745fa60fc52b3180fa210ec3048e6a419";
sha256 = "sha256-426bjK7EDq5LHb3vNS8XYnAuA6TUKXNOVrjGMR70bio="; sha256 = "sha256-Q5KIndnXtTJmqVjmuucutWPggLey7ceT9sqeEInC8vw=";
}; };
preFixup = '' preFixup = ''
wrapProgram $out/bin/btrbk \ wrapProgram $out/bin/btrbk \

View File

@ -1,128 +0,0 @@
{ stdenv, lib, runtimeShell
, name ? "android-emulator", sdk ? null, deviceType ? ""
, platformVersion ? "30", systemImageType ? "default", abiVersion ? "x86_64"
, enableGPU ? false, extraAVDFiles ? []
, app ? null, package ? null, activity ? null
, avdHomeDir ? null
}:
stdenv.mkDerivation {
inherit name;
buildCommand = ''
mkdir -p $out/bin
cat > $out/bin/${name}-run << "EOF"
#!${runtimeShell} -e
# We need a TMPDIR
if [ "$TMPDIR" = "" ]
then
export TMPDIR=/tmp
fi
${if avdHomeDir == null then ''
# Store the virtual devices somewhere else, instead of polluting a user's HOME directory
export ANDROID_SDK_HOME=$(mktemp -d $TMPDIR/nix-android-vm-XXXX)
'' else ''
mkdir -p "${avdHomeDir}"
export ANDROID_SDK_HOME="${avdHomeDir}"
''}
# We need to specify the location of the Android SDK root folder
export ANDROID_SDK_ROOT=${sdk}
# We have to look for a free TCP port
echo "Looking for a free TCP port in range 5554-5584" >&2
for i in $(seq 5554 2 5584)
do
if [ -z "$(${sdk}/platform-tools/adb devices | grep emulator-$i)" ]
then
port=$i
break
fi
done
if [ -z "$port" ]
then
echo "Unfortunately, the emulator port space is exhausted!" >&2
exit 1
else
echo "We have a free TCP port: $port" >&2
fi
export ANDROID_SERIAL="emulator-$port"
# Create a virtual android device for testing if it does not exist
# ${sdk}/cmdline-tools/latest/bin/avdmanager list target
if [ "$(${sdk}/cmdline-tools/latest/bin/avdmanager list avd | grep 'Name: ${name}')" = "" ]
then
# Create a virtual android device
yes "" | ${sdk}/cmdline-tools/latest/bin/avdmanager create avd -n "${name}" -k "system-images;android-${platformVersion};${systemImageType};${abiVersion}" -d "${deviceType}" $NIX_ANDROID_AVD_FLAGS
# fix wrong sdk path
sed -i "s|image.sysdir.1.\+|image.sysdir.1=${sdk}/system-images/android-${platformVersion}/${systemImageType}/${abiVersion}|" "$ANDROID_SDK_HOME/.android/avd/${name}.avd/config.ini"
${lib.optionalString enableGPU ''
# Enable GPU acceleration
echo "hw.gpu.enabled=yes" >> "$ANDROID_SDK_HOME/.android/avd/${name}.avd/config.ini"
''}
${lib.concatMapStrings (extraAVDFile: ''
ln -sf ${extraAVDFile} "$ANDROID_SDK_HOME/.android/avd/${name}.avd"
'') extraAVDFiles}
fi
# Launch the emulator
${sdk}/emulator/emulator -avd "${name}" -no-boot-anim -port $port $NIX_ANDROID_EMULATOR_FLAGS &
# Wait until the device has completely booted
echo "Waiting until the emulator has booted the device and the package manager is ready..." >&2
${sdk}/platform-tools/adb -s emulator-$port wait-for-device
echo "Device state has been reached" >&2
while [ -z "$(${sdk}/platform-tools/adb -s emulator-$port shell getprop dev.bootcomplete | grep 1)" ]
do
sleep 5
done
echo "dev.bootcomplete property is 1" >&2
#while [ -z "$(${sdk}/platform-tools/adb -s emulator-$port shell getprop sys.boot_completed | grep 1)" ]
#do
#sleep 5
#done
#echo "sys.boot_completed property is 1" >&2
echo "ready" >&2
${lib.optionalString (app != null) ''
# Install the App through the debugger, if it has not been installed yet
if [ -z "${package}" ] || [ "$(${sdk}/platform-tools/adb -s emulator-$port shell pm list packages | grep package:${package})" = "" ]
then
if [ -d "${app}" ]
then
appPath="$(echo ${app}/*.apk)"
else
appPath="${app}"
fi
${sdk}/platform-tools/adb -s emulator-$port install "$appPath"
fi
# Start the application
${lib.optionalString (package != null && activity != null) ''
${sdk}/platform-tools/adb -s emulator-$port shell am start -a android.intent.action.MAIN -n ${package}/${activity}
''}
''}
EOF
chmod +x $out/bin/${name}-run
'';
}

View File

@ -0,0 +1,81 @@
{ lib, stdenv, fetchFromGitHub, meson, pkgconfig, libdrm, xorg
, wayland, wayland-protocols, libxkbcommon, libcap
, SDL2, mesa, libinput, pixman, xcbutilerrors, xcbutilwm, glslang
, ninja, makeWrapper, xwayland, libuuid, xcbutilrenderutil
, pipewire, stb, writeText, wlroots, vulkan-loader, vulkan-headers, libkrb5 }:
let
stbpc = writeText "stbpc" ''
prefix=${stb}
includedir=''${prefix}/include/stb
Cflags: -I''${includedir}
Name: stb
Version: ${stb.version}
Description: stb
'';
stb_ = stb.overrideAttrs (oldAttrs: rec {
installPhase = ''
${oldAttrs.installPhase}
install -Dm644 ${stbpc} $out/lib/pkgconfig/stb.pc
'';
});
vulkan-headers_ = vulkan-headers.overrideAttrs (oldAttrs: rec {
version = "1.2.189.1";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Headers";
rev = "sdk-${version}";
sha256 = "1qggc7dv9jr83xr9w2h375wl3pz3rfgrk9hnrjmylkg9gz4p9q03";
};
});
vulkan-loader_ = (vulkan-loader.overrideAttrs (oldAttrs: rec {
version = "1.2.189.1";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Loader";
rev = "sdk-${version}";
sha256 = "1745fdzi0n5qj2s41q6z1y52cq8pwswvh1a32d3n7kl6bhksagp6";
};
})).override { vulkan-headers = vulkan-headers_; };
in stdenv.mkDerivation rec {
pname = "gamescope";
version = "3.9.1";
src = fetchFromGitHub {
owner = "Plagman";
repo = "gamescope";
rev = version;
sha256 = "05a1sj1fl9wpb9jys515m96958cxmgim8i7zc5mn44rjijkfbfcb";
fetchSubmodules = true;
};
preConfigure = ''
substituteInPlace meson.build \
--replace "'examples=false'" "'examples=false', 'logind-provider=systemd', 'libseat=disabled'"
'';
postInstall = ''
wrapProgram $out/bin/gamescope \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libkrb5 ]}" \
--prefix PATH : "${lib.makeBinPath [ xwayland ]}"
'';
buildInputs = with xorg; [
libX11 libXdamage libXcomposite libXrender libXext libXxf86vm
libXtst libdrm vulkan-loader_ wayland wayland-protocols
libxkbcommon libcap SDL2 mesa libinput pixman xcbutilerrors
xcbutilwm libXi libXres libuuid xcbutilrenderutil xwayland
pipewire wlroots libkrb5
];
nativeBuildInputs = [ meson pkgconfig glslang ninja makeWrapper stb_ ];
meta = with lib; {
description = "The micro-compositor formerly known as steamcompmgr";
license = licenses.bsd2;
homepage = src.meta.homepage;
platforms = platforms.linux;
maintainers = with maintainers; [ ];
};
}

View File

@ -1,25 +0,0 @@
{ stdenv, fetchFromGitHub, i3lock, xorg, inputs, pkgs }:
stdenv.mkDerivation rec {
name = "i3lock-fancy-rapid";
src = inputs.i3lock-fancy-rapid;
# src = fetchFromGitHub {
# owner = "yvbbrjdr";
# repo = "i3lock-fancy-rapid";
# rev = "c67f09bc8a48798c7c820d7d4749240b10865ce0";
# sha256 = "0jhvlj6v6wx70239pgkjxd42z1s2bzfg886ra6n1rzsdclf4rkc6";
# };
buildInputs = [ i3lock xorg.libX11 ];
installPhase = ''
mkdir -p $out/bin
cp i3lock-fancy-rapid $out/bin/i3lock-fancy-rapid
'';
meta = with pkgs.lib; {
description = "A faster implementation of i3lock-fancy. It is blazing fast and provides a fully configurable box blur. It uses linear-time box blur and accelerates using OpenMP.";
homepage = https://github.com/yvbbrjdr/i3lock-fancy-rapid;
maintainers = with maintainers; [ ];
license = licenses.bsd3;
platforms = platforms.linux;
};
}

View File

@ -19,7 +19,7 @@ let
''; '';
}; };
version = "5.1.3"; version = "6.0.0";
in fetchzip { in fetchzip {
name = "ibm-plex-powerline-${version}"; name = "ibm-plex-powerline-${version}";
@ -33,6 +33,6 @@ in fetchzip {
rm -f $out/share/fonts/opentype/IBMPlex* rm -f $out/share/fonts/opentype/IBMPlex*
''; '';
sha256 = "sha256-Ur3pG3t9sjboJ2AFAcffFfVJhRQBOtvZ0aulFyMZJts="; sha256 = "sha256-doBe3rNMrPjNG7zRGuCAV7w1iT49A7UROjtMapcjXUk=";
} }

View File

@ -2,14 +2,14 @@
{ stdenv, pkgs, term }: { stdenv, pkgs, term }:
let let
yt-mpv = pkgs.writeShellScriptBin "yt-mpv" '' yt-mpv = pkgs.writeShellScriptBin "yt-mpv" ''
if [[ "$1" != "--no-video" ]]; then if [[ "$1" != "--no-video" ]]; then
${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Video" "$(${pkgs.xclip}/bin/xclip -o)" ${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Video" "$(${pkgs.wl-clipboard}/bin/wl-paste)"
${pkgs.mpv}/bin/mpv --fs "$(${pkgs.xclip}/bin/xclip -o)" ${pkgs.mpv}/bin/mpv --fs "$(${pkgs.wl-clipboard}/bin/wl-paste)"
else else
${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Audio" "$(${pkgs.xclip}/bin/xclip -o)" ${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Audio" "$(${pkgs.wl-clipboard}/bin/wl-paste)"
${term} -e ${pkgs.mpv}/bin/mpv --no-video "$(${pkgs.xclip}/bin/xclip -o)" ${term} -e ${pkgs.mpv}/bin/mpv --no-video "$(${pkgs.wl-clipboard}/bin/wl-paste)"
fi fi
''; '';
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "youtube-to-mpv"; name = "youtube-to-mpv";

View File

@ -0,0 +1,26 @@
{ pkgs, config, lib, ... }:
{
secrets.gitea = {
owner = "gitea";
};
services.gitea = {
enable = true;
appName = "AtaraxiaDev Gitea Instance";
cookieSecure = true;
database = {
type = "postgres";
passwordFile = config.secrets.gitea.decrypted;
};
disableRegistration = true;
domain = "code.ataraxiadev.com";
httpPort = 6000;
lfs.enable = true;
rootUrl = "https://code.ataraxiadev.com";
settings = {
server = {
SSH_DOMAIN = "gitea.ataraxiadev.com";
};
};
};
}

View File

@ -104,11 +104,16 @@
''; '';
locations."/mautrix-telegram/" = { locations."/mautrix-telegram/" = {
proxyPass = "http://localhost:29317"; proxyPass = "http://localhost:29317";
}; };
locations."/_matrix" = { locations."/_matrix" = {
proxyPass = "http://localhost:13748"; proxyPass = "http://localhost:13748";
}; };
} // default; } // default;
"code.ataraxiadev.com" = {
locations."/" = {
proxyPass = "http://localhost:6000";
};
} // default;
}; };
}; };
} }

View File

@ -28,12 +28,6 @@ with config.deviceSpecific; {
interval = "weekly"; interval = "weekly";
}; };
services.redshift = {
enable = true;
temperature.day = 6500;
temperature.night = 3000;
};
services.thermald.enable = isLaptop; services.thermald.enable = isLaptop;
services.tlp = { services.tlp = {
@ -69,6 +63,14 @@ with config.deviceSpecific; {
home-manager.users.alukard.services.udiskie.enable = true; home-manager.users.alukard.services.udiskie.enable = true;
home-manager.users.alukard.services.gammastep = {
enable = true;
latitude = 48.79;
longitude = 44.78;
temperature.day = 6500;
temperature.night = 3000;
};
services.upower.enable = true; services.upower.enable = true;
systemd.services.systemd-udev-settle.enable = false; systemd.services.systemd-udev-settle.enable = false;

View File

@ -1,51 +0,0 @@
{ config, lib, pkgs, inputs, ... }: {
home-manager.users.alukard = rec {
imports = [ inputs.android-nixpkgs.hmModule ];
android-sdk = {
enable = true;
path = "${config.home-manager.users.alukard.home.homeDirectory}/.android/sdk";
packages = sdk: with sdk; [
build-tools-31-0-0
build-tools-29-0-2
cmdline-tools-latest
patcher-v4
platform-tools
platforms-android-30
emulator
system-images-android-30-google-apis-x86-64
];
};
home.sessionVariables = {
ANDROID_HOME = android-sdk.path;
ANDROID_SDK_ROOT = android-sdk.path;
JAVA_HOME = pkgs.jdk11.home;
};
home.packages = let
android-emulator = pkgs.android-emulator.override {
name = "flutter-emulator";
avdHomeDir = config.home-manager.users.alukard.home.homeDirectory;
sdk = android-sdk.path;
platformVersion = "30";
systemImageType = "google_apis";
abiVersion = "x86_64";
deviceType = "pixel";
# enableGPU = true;
};
in [
pkgs.flutter
android-emulator
# jdk11
];
};
environment.sessionVariables = {
ANDROID_HOME = config.home-manager.users.alukard.android-sdk.path;
ANDROID_SDK_ROOT = config.home-manager.users.alukard.android-sdk.path;
JAVA_HOME = pkgs.jdk11.home;
};
}

View File

@ -1,51 +0,0 @@
{ pkgs, config, lib, ... }:
let
thm = config.lib.base16.theme;
in {
home-manager.users.alukard = {
services.dunst = {
enable = true;
iconTheme = {
name = "${thm.iconTheme}";
package = thm.iconPackage;
};
settings = {
global = {
geometry = "500x5-30+50";
transparency = 10;
frame_color = "#${thm.base05-hex}";
separator_color = "#${thm.base05-hex}";
font = "${thm.fonts.main.family} ${thm.fontSizes.normal.str}";
padding = 15;
horizontal_padding = 17;
word_wrap = true;
follow = "keyboard";
format = ''
%s %p %I
%b'';
markup = "full";
};
urgency_low = {
background = "#${thm.base01-hex}";
foreground = "#${thm.base05-hex}";
timeout = 8;
};
urgency_normal = {
background = "#${thm.base01-hex}";
foreground = "#${thm.base08-hex}";
timeout = 12;
};
urgency_critical = {
background = "#${thm.base01-hex}";
foreground = "#${thm.base0D-hex}";
timeout = 20;
};
};
};
xsession.windowManager.i3.config.startup =
[{ command = "${pkgs.dunst}/bin/dunst"; }];
};
}

View File

@ -31,8 +31,9 @@ in {
}; };
}) })
]; ];
gtk.iconCache.enable = true;
programs.dconf.enable = true; programs.dconf.enable = true;
services.dbus.packages = with pkgs; [ gnome3.dconf gcr ]; services.dbus.packages = with pkgs; [ dconf gcr ];
home-manager.users.alukard = { home-manager.users.alukard = {
gtk = { gtk = {
enable = true; enable = true;
@ -49,10 +50,6 @@ in {
size = thm.fontSizes.normal.int; size = thm.fontSizes.normal.int;
}; };
}; };
home.sessionVariables.XDG_DATA_DIRS = [
"${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}"
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"
];
home.sessionVariables.GTK_THEME = "Generated"; home.sessionVariables.GTK_THEME = "Generated";
}; };
} }

View File

@ -1,194 +0,0 @@
{ pkgs, config, lib, ... }:
let
thm = config.lib.base16.theme;
apps = config.defaultApplications;
# lock = pkgs.writeShellScript "lock" "sudo /run/current-system/sw/bin/lock";
in {
environment.sessionVariables._JAVA_AWT_WM_NONREPARENTING = "1";
home-manager.users.alukard.xsession.windowManager.i3 = {
enable = true;
package = pkgs.i3-gaps;
config = rec {
assigns = {
"" = [
{ class = "spotify"; }
{ title = "spt"; }
];
"" = [
{ class = "^Telegram"; }
];
};
fonts = {
names = [ "${thm.fonts.main.family}" ];
style = "Regular";
size = thm.fontSizes.micro.float;
};
bars = [ ];
colors = rec {
background = "#${thm.base00-hex}";
unfocused = {
text = "#${thm.base02-hex}";
border = "#${thm.base01-hex}";
background = "#${thm.base00-hex}";
childBorder = "#${thm.base01-hex}";
indicator = "#${thm.base07-hex}";
};
focusedInactive = unfocused;
urgent = unfocused // {
text = "#${thm.base05-hex}";
border = "#${thm.base09-hex}";
childBorder = "#${thm.base09-hex}";
};
focused = unfocused // {
childBorder = "#${thm.base03-hex}";
border = "#${thm.base03-hex}";
background = "#${thm.base01-hex}";
text = "#${thm.base05-hex}";
};
};
gaps = {
inner = 6;
smartGaps = true;
smartBorders = "on";
};
focus.mouseWarping = false;
focus.followMouse = false;
modifier = "Mod4";
window = {
border = 1;
titlebar = false;
hideEdgeBorders = "smart";
commands = [
{
command = "border pixel 2px";
criteria = { window_role = "popup"; };
}
{
command = "move to workspace ";
criteria = { class = "Spotify"; };
}
{
command = "floating enable";
criteria = { instance = "origin.exe"; };
}
];
};
startup = lib.mkIf (!config.deviceSpecific.isISO) (map (command: { inherit command; }) config.startupApplications);
keybindings = let
script = name: content: "exec ${pkgs.writeScript name content}";
workspaces = (builtins.genList (x: [ (toString x) (toString x) ]) 10)
++ [ [ "c" "" ] [ "t" "" ] ];
in ({
"${modifier}+q" = "kill";
"${modifier}+Shift+q" = "move container to workspace temp; [workspace=__focused__] kill; workspace temp; move container to workspace temp; workspace temp";
"${modifier}+w" = "exec ${apps.dmenu.cmd}";
"${modifier}+Return" = "exec ${apps.term.cmd}";
"${modifier}+e" = "exec ${apps.editor.cmd}";
"${modifier}+o" = "layout toggle all";
"${modifier}+Left" = "focus child; focus left";
"${modifier}+Right" = "focus child; focus right";
"${modifier}+Up" = "focus child; focus up";
"${modifier}+Down" = "focus child; focus down";
"${modifier}+Control+Left" = "focus parent; focus left";
"${modifier}+Control+Right" = "focus parent; focus right";
"${modifier}+Control+Up" = "focus parent; focus up";
"${modifier}+Control+Down" = "focus parent; focus down";
"${modifier}+Shift+Up" = "move up";
"${modifier}+Shift+Down" = "move down";
"${modifier}+Shift+Right" = "move right";
"${modifier}+Shift+Left" = "move left";
"${modifier}+bracketleft" = "workspace prev";
"${modifier}+bracketright" = "workspace next";
"${modifier}+f" = "fullscreen toggle";
"${modifier}+r" = "mode resize";
"${modifier}+Shift+f" = "floating toggle";
"${modifier}+Escape" = "exec ${apps.monitor.cmd}";
"${modifier}+j" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl prev";
"${modifier}+k" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl pp";
"${modifier}+l" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl next";
"${modifier}+m" = "exec ${pkgs.pamixer}/bin/pamixer -t";
"${modifier}+comma" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
"${modifier}+period" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
"${modifier}+Shift+comma" = "exec ${pkgs.pamixer}/bin/pamixer -d 2";
"${modifier}+Shift+period" = "exec ${pkgs.pamixer}/bin/pamixer -i 2";
"${modifier}+i" = "exec ${pkgs.pavucontrol}/bin/pavucontrol";
"${modifier}+d" = "exec ${apps.fm.cmd}";
"${modifier}+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv";
"${modifier}+Shift+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv --no-video";
"${modifier}+Shift+l" = "exec ${pkgs.i3lock-fancy-rapid}/bin/i3lock-fancy-rapid 8 3";
"${modifier}+Print" = script "screenshot"
"${pkgs.maim}/bin/maim ~/Pictures/$(date +%s).png";
"${modifier}+Control+Print" = script "screenshot-copy"
"${pkgs.maim}/bin/maim | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png";
"--release ${modifier}+Shift+Print" = script "screenshot-area"
"${pkgs.maim}/bin/maim -s ~/Pictures/$(date +%s).png";
"--release ${modifier}+Control+Shift+Print" = script "screenshot-area-copy"
"${pkgs.maim}/bin/maim -s | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png";
"${modifier}+x" = "move workspace to output right";
"${modifier}+F5" = "reload";
"${modifier}+Shift+F5" = "exit";
"${modifier}+Shift+h" = "layout splith";
"${modifier}+Shift+v" = "layout splitv";
"${modifier}+h" = "split h";
"${modifier}+v" = "split v";
"${modifier}+F1" = "move to scratchpad";
"${modifier}+F2" = "scratchpad show";
"${modifier}+F12" = "exec xset dpms force off";
"XF86AudioPlay" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl pp";
"XF86AudioNext" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl next";
"XF86AudioPrev" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl prev";
"XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
"XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
"XF86AudioMute" = "exec ${pkgs.pamixer}/bin/pamixer -t";
"Shift+XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 2";
"Shift+XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 2";
"--release button2" = "kill";
"--whole-window ${modifier}+button2" = "kill";
} // builtins.listToAttrs (builtins.map (x: {
name = "${modifier}+${builtins.elemAt x 0}";
value = "workspace ${builtins.elemAt x 1}";
}) workspaces) // builtins.listToAttrs (builtins.map (x: {
name = "${modifier}+Shift+${builtins.elemAt x 0}";
value = "move container to workspace ${builtins.elemAt x 1}";
}) workspaces)
);
workspaceLayout = "tabbed";
};
extraConfig = ''
default_border pixel 1
hide_edge_borders smart
# Set colors
set $base00 #${thm.base00-hex}
set $base01 #${thm.base01-hex}
set $base02 #${thm.base02-hex}
set $base03 #${thm.base03-hex}
set $base04 #${thm.base04-hex}
set $base05 #${thm.base05-hex}
set $base06 #${thm.base06-hex}
set $base07 #${thm.base07-hex}
set $base08 #${thm.base08-hex}
set $base09 #${thm.base09-hex}
set $base0A #${thm.base0A-hex}
set $base0B #${thm.base0B-hex}
set $base0C #${thm.base0C-hex}
set $base0D #${thm.base0D-hex}
set $base0E #${thm.base0E-hex}
set $base0F #${thm.base0F-hex}
'';
};
}

View File

@ -4,16 +4,17 @@ let
thm = config.lib.base16.theme; thm = config.lib.base16.theme;
in { in {
home-manager.users.alukard = { home-manager.users.alukard = {
xsession.windowManager.i3.config.bars = [{ # xsession.windowManager.i3.config.bars = [{
wayland.windowManager.sway.config.bars = [{
id = "default"; id = "default";
position = "top";
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs ~/.config/i3status-rust/config-top.toml";
workspaceNumbers = false;
fonts = { fonts = {
names = [ "${thm.fonts.powerline.family}" "${thm.fonts.icon.family}" "${thm.fonts.iconFallback.family}" ]; names = [ "${thm.fonts.powerline.family}" "${thm.fonts.icon.family}" "${thm.fonts.iconFallback.family}" ];
style = "Regular"; style = "Regular";
size = thm.fontSizes.micro.float; size = thm.fontSizes.micro.float;
}; };
position = "top";
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs";
workspaceNumbers = false;
colors = let colors = let
default = { default = {
background = "#${thm.base00-hex}"; background = "#${thm.base00-hex}";
@ -29,143 +30,101 @@ in {
urgentWorkspace = default // { text = "#${thm.base09-hex}"; }; urgentWorkspace = default // { text = "#${thm.base09-hex}"; };
bindingMode = default // { text = "#${thm.base0A-hex}"; }; bindingMode = default // { text = "#${thm.base0A-hex}"; };
}; };
}]; }];
xdg.configFile."i3status-rust/config.toml".text = lib.concatStrings ['' programs.i3status-rust = {
enable = true;
[theme] bars.top = {
name = "solarized-dark" settings = {
[theme.overrides] theme = {
idle_bg = "#${thm.base00-hex}" name = "solarized-dark";
idle_fg = "#${thm.base05-hex}" overrides = {
info_bg = "#${thm.base0C-hex}" idle_bg = "#${thm.base00-hex}";
info_fg = "#${thm.base00-hex}" idle_fg = "#${thm.base05-hex}";
good_bg = "#${thm.base0B-hex}" info_bg = "#${thm.base0C-hex}";
good_fg = "#${thm.base00-hex}" info_fg = "#${thm.base00-hex}";
warning_bg = "#${thm.base0A-hex}" good_bg = "#${thm.base0B-hex}";
warning_fg = "#${thm.base00-hex}" good_fg = "#${thm.base00-hex}";
critical_bg = "#${thm.base08-hex}" warning_bg = "#${thm.base0A-hex}";
critical_fg = "#${thm.base00-hex}" warning_fg = "#${thm.base00-hex}";
critical_bg = "#${thm.base08-hex}";
critical_fg = "#${thm.base00-hex}";
# Material Icons Cheatsheet [https://shanfan.github.io/material-icons-cheatsheet/] };
# Font Awesome Cheatsheet [https://fontawesome.com/icons?d=gallery&m=free] };
[icons] icons = {
name = "awesome5" name = "awesome5";
[icons.overrides] overrides = {
backlight_empty = " 🌑 " backlight_empty = " 🌑 ";
backlight_full = " 🌕 " backlight_full = " 🌕 ";
backlight_partial1 = " 🌘 " backlight_partial1 = " 🌘 ";
backlight_partial2 = " 🌗 " backlight_partial2 = " 🌗 ";
backlight_partial3 = " 🌖 " backlight_partial3 = " 🌖 ";
# bat_charging = "" cpu = "";
# bat_discharging = "" net_wired = "";
# bat_full = "" net_wireless = "";
# bat = "" };
# cogs = "" };
cpu = "" };
# gpu = "" blocks = [
# mail = "" {
memory_mem = "" block = "net";
memory_swap = "" device = if config.device == "Dell-Laptop" then
music_next = "" "wlo1"
music_pause = "" else if config.device == "AMD-Workstation" then
music_play = "" "enp9s0"
music_prev = "" else "";
music = "" }
net_down = "" ] ++ lib.optionals config.deviceSpecific.isLaptop [
net_up = "" {
### net_up = "" block = "battery";
net_wired = "" interval = 10;
net_wireless = "" format = "{percentage} {time}";
### net_wired = "" }
### net_wireless = "" {
# ping = "" block = "backlight";
# thermometer = "" }
# time = "" ] ++ [
# toggle_off = "" {
# toggle_on = "" block = "custom";
# update = "" command = "${scripts.weather}";
# uptime = "" interval = 600;
volume_empty = "" }
volume_full = "" {
volume_half = "" block = "sound";
volume_muted = "" driver = "auto";
# weather_clouds = "" }
# weather_default = "" {
# weather_rain = "" block = "temperature";
# weather_snow = "" # collapsed = false;
# weather_sun = "" chip = if config.device == "Dell-Laptop" then
# weather_thunder = "" "*-isa-*"
# xrandr = "" else if config.device == "AMD-Workstation" then
"*-pci-*"
# [[block]] else "*-pci-*";
# block = "music" }
# buttons = ["play", "next"] {
block = "cpu";
[[block]] interval = 1;
block = "net" format = "{utilization} {frequency}";
'' }
(if config.device == "Dell-Laptop" then '' {
device = "wlo1" block = "custom";
'' else "") command = "${scripts.df}";
(if config.device == "AMD-Workstation" then '' interval = 60;
device = "enp9s0" }
'' else "") {
(if config.deviceSpecific.isLaptop then '' block = "memory";
[[block]] display_type = "memory";
block = "battery" format_mem = "{mem_avail;G}";
interval = 10 format_swap = "{swap_free;G}";
format = "{percentage} {time}" }
{
[[block]] block = "time";
block = "backlight" interval = 1;
'' else "") format = "%a %Y/%m/%d %T";
'' }
[[block]] ];
block = "custom" };
command = "${scripts.weather}" };
interval = 600
[[block]]
block = "sound"
driver = "auto"
''
(if config.device == "Dell-Laptop" then ''
[[block]]
block = "custom"
command = "${scripts.cputemp}"
interval = 5
'' else "")
''
[[block]]
block = "cpu"
interval = 1
format = "{utilization} {frequency}"
[[block]]
block = "memory"
display_type = "memory"
format_mem = "{mem_avail;G}"
format_swap = "{swap_free;G}"
[[block]]
block = "custom"
command = "${scripts.df}"
interval = 60
[[block]]
block = "custom"
command = "${scripts.vpn-status}"
interval = 60
[[block]]
block = "time"
interval = 1
format = "%a %Y/%m/%d %T"
''];
}; };
} }

View File

@ -1,6 +1,5 @@
{ pkgs, lib, config, ... }: { pkgs, lib, config, ... }:
with config.lib.base16.theme; { with config.lib.base16.theme; {
xdg.portal.enable = true;
services.dbus.packages = services.dbus.packages =
[ pkgs.systemd iconPackage ]; [ pkgs.systemd iconPackage ];
services.udev.packages = [ pkgs.libmtp pkgs.media-player-info ]; services.udev.packages = [ pkgs.libmtp pkgs.media-player-info ];

View File

@ -15,8 +15,8 @@ with config.deviceSpecific; {
location = lib.mkIf (!isServer) { location = lib.mkIf (!isServer) {
provider = "manual"; provider = "manual";
latitude = 48.78583; latitude = 48.79;
longitude = 44.77973; longitude = 44.78;
}; };
home-manager.users.alukard = { home-manager.users.alukard = {

View File

@ -0,0 +1,30 @@
{ pkgs, config, ... }: {
home-manager.users.alukard = {
systemd.user.services.mako = {
Service = {
ExecStart = "${pkgs.mako}/bin/mako";
};
Install = {
WantedBy = [ "sway-session.target" ];
};
Unit = {
After = [ "sway-session.target" ];
};
};
programs.mako = with config.lib.base16; {
enable = true;
layer = "overlay";
font = "${theme.fonts.mono.family} ${theme.fontSizes.normal.str}";
width = 500;
height = 80;
defaultTimeout = 10000;
maxVisible = 10;
backgroundColor = "#${theme.base00-hex}AA";
textColor = "#${theme.base05-hex}";
borderColor = "#${theme.base0D-hex}AA";
progressColor = "over #${theme.base0B-hex}";
iconPath = "${theme.iconPackage}/share/icons/${theme.iconTheme}";
maxIconSize = 24;
};
};
}

View File

@ -11,6 +11,22 @@
news.display = "silent"; news.display = "silent";
systemd.user.startServices = true; systemd.user.startServices = true;
home.stateVersion = "21.11"; home.stateVersion = "21.11";
#TODO: Move to another file
services.pass-secret-service.enable = true;
systemd.user.services.pass-secret-service = {
Service = {
ExecStart = lib.mkForce
"${pkgs.pass-secret-service}/bin/pass_secret_service --path ${config.environment.variables.PASSWORD_STORE_DIR}";
Type = "dbus";
BusName = "org.freedesktop.secrets";
};
Unit = rec {
Wants = [ "gpg-agent.service" "activate-secrets.service" ];
After = Wants;
PartOf = [ "graphical-session-pre.target" ];
};
};
}; };
system.stateVersion = "21.11"; system.stateVersion = "21.11";

View File

@ -0,0 +1,304 @@
{ pkgs, lib, config, ... }:
let
thm = config.lib.base16.theme;
apps = config.defaultApplications;
# lock_fork =
# pkgs.writeShellScript "lock_fork" "sudo /run/current-system/sw/bin/lock &";
# lock = pkgs.writeShellScript "lock"
# "swaymsg 'output * dpms off'; sudo /run/current-system/sw/bin/lock; swaymsg 'output * dpms on'";
in {
programs.sway.enable = true;
programs.sway.wrapperFeatures.gtk = true;
programs.sway.extraPackages = lib.mkForce (with pkgs; [
swayidle
swaylock-effects
xwayland
wl-clipboard
libsForQt5.qt5.qtwayland
gsettings_desktop_schemas
]);
xdg.portal = {
enable = true;
extraPortals = with pkgs; [ xdg-desktop-portal-wlr xdg-desktop-portal-gtk ];
gtkUsePortal = true;
};
users.users.alukard.extraGroups = [ "sway" ];
environment.loginShellInit = lib.mkAfter ''
[[ "$(tty)" == /dev/tty1 ]] && {
pass unlock
exec sway 2> /tmp/sway.debug.log
}
'';
home-manager.users.alukard.wayland.windowManager.sway = let
gsettings = "${pkgs.glib}/bin/gsettings";
gnomeSchema = "org.gnome.desktop.interface";
importGsettings = pkgs.writeShellScript "import_gsettings.sh" ''
config="/home/alukard/.config/gtk-3.0/settings.ini"
if [ ! -f "$config" ]; then exit 1; fi
gtk_theme="$(grep 'gtk-theme-name' "$config" | sed 's/.*\s*=\s*//')"
icon_theme="$(grep 'gtk-icon-theme-name' "$config" | sed 's/.*\s*=\s*//')"
cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | sed 's/.*\s*=\s*//')"
font_name="$(grep 'gtk-font-name' "$config" | sed 's/.*\s*=\s*//')"
${gsettings} set ${gnomeSchema} gtk-theme "$gtk_theme"
${gsettings} set ${gnomeSchema} icon-theme "$icon_theme"
${gsettings} set ${gnomeSchema} cursor-theme "$cursor_theme"
${gsettings} set ${gnomeSchema} font-name "$font_name"
'';
in {
enable = true;
config = rec {
assigns = {
# "" = [
# { class = "Chromium"; }
# { app_id = "firefox"; }
# { class = "Firefox"; }
# ];
"" = [
{ class = "spotify"; }
{ title = "spt"; }
];
"" = [
{ class = "^Telegram"; }
];
};
fonts = {
names = [ "${thm.fonts.main.family}" ];
style = "Regular";
size = thm.fontSizes.micro.float;
};
bars = [ ];
colors = rec {
background = "#${thm.base00-hex}";
unfocused = {
text = "#${thm.base02-hex}";
border = "#${thm.base01-hex}";
background = "#${thm.base00-hex}";
childBorder = "#${thm.base01-hex}";
indicator = "#${thm.base07-hex}";
};
focusedInactive = unfocused;
urgent = unfocused // {
text = "#${thm.base05-hex}";
border = "#${thm.base09-hex}";
childBorder = "#${thm.base09-hex}";
};
focused = unfocused // {
childBorder = "#${thm.base03-hex}";
border = "#${thm.base03-hex}";
background = "#${thm.base01-hex}";
text = "#${thm.base05-hex}";
};
};
gaps = {
inner = 15;
smartGaps = true;
smartBorders = "on";
};
focus.followMouse = false;
focus.forceWrapping = false;
modifier = "Mod4";
window = {
border = 0;
titlebar = false;
commands = [
{
command = "border pixel 2px";
criteria = { window_role = "popup"; };
}
{
command = "sticky enable";
criteria = { floating = ""; };
}
{
command = "move to workspace ";
criteria = { class = "Spotify"; };
}
{
command = "floating enable";
criteria = { instance = "origin.exe"; };
}
];
};
startup = (map (command: { inherit command; }) config.startupApplications)
++ [
{ command = "${importGsettings}"; always = true; }
{
always = true;
command = ''
swayidle -w timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' '';
}
# {
# command =
# "swayidle -w before-sleep '${lock_fork}' lock '${lock_fork}' unlock 'pkill -9 swaylock'";
# }
];
keybindings = let
script = name: content: "exec ${pkgs.writeScript name content}";
workspaces = (builtins.genList (x: [ (toString x) (toString x) ]) 10)
++ [ [ "c" "" ] [ "t" "" ] ];
in ({
"${modifier}+q" = "kill";
"${modifier}+Shift+q" =
"move container to workspace temp; [workspace=__focused__] kill; workspace temp; move container to workspace temp; workspace temp";
"${modifier}+w" = "exec ${apps.dmenu.cmd}";
"${modifier}+Return" = "exec ${apps.term.cmd}";
"${modifier}+e" = "exec ${apps.editor.cmd}";
"${modifier}+o" = "layout toggle all";
"${modifier}+Left" = "focus child; focus left";
"${modifier}+Right" = "focus child; focus right";
"${modifier}+Up" = "focus child; focus up";
"${modifier}+Down" = "focus child; focus down";
"${modifier}+Control+Left" = "focus parent; focus left";
"${modifier}+Control+Right" = "focus parent; focus right";
"${modifier}+Control+Up" = "focus parent; focus up";
"${modifier}+Control+Down" = "focus parent; focus down";
"${modifier}+Shift+Up" = "move up";
"${modifier}+Shift+Down" = "move down";
"${modifier}+Shift+Right" = "move right";
"${modifier}+Shift+Left" = "move left";
"${modifier}+bracketleft" = "workspace prev";
"${modifier}+bracketright" = "workspace next";
# "${modifier}+a" = "focus child; focus left";
# "${modifier}+d" = "focus child; focus right";
# "${modifier}+w" = "focus child; focus up";
# "${modifier}+s" = "focus child; focus down";
# "${modifier}+Control+a" = "focus parent; focus left";
# "${modifier}+Control+d" = "focus parent; focus right";
# "${modifier}+Control+w" = "focus parent; focus up";
# "${modifier}+Control+s" = "focus parent; focus down";
# "${modifier}+Shift+w" = "move up";
# "${modifier}+Shift+s" = "move down";
# "${modifier}+Shift+d" = "move right";
# "${modifier}+Shift+a" = "move left";
"${modifier}+f" = "fullscreen toggle; floating toggle";
"${modifier}+r" = "mode resize";
"${modifier}+Shift+f" = "floating toggle";
"${modifier}+Escape" = "exec ${apps.monitor.cmd}";
"${modifier}+j" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl prev";
"${modifier}+k" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl pp";
"${modifier}+l" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl next";
"${modifier}+Shift+j" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl --player Spotify prev";
"${modifier}+Shift+k" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl --player Spotify pp";
"${modifier}+Shift+l" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl --player Spotify next";
"${modifier}+m" = "exec ${pkgs.pamixer}/bin/pamixer -t";
"${modifier}+comma" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
"${modifier}+period" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
"${modifier}+Shift+comma" = "exec ${pkgs.pamixer}/bin/pamixer -d 2";
"${modifier}+Shift+period" = "exec ${pkgs.pamixer}/bin/pamixer -i 2";
"${modifier}+i" = "exec ${pkgs.pavucontrol}/bin/pavucontrol";
"${modifier}+d" = "exec ${apps.fm.cmd}";
"${modifier}+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv";
"${modifier}+Shift+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv --no-video";
"${modifier}+Print" = script "screenshot"
"${pkgs.grim}/bin/grim Pictures/$(date +'%Y-%m-%d+%H:%M:%S').png";
"${modifier}+Control+Print" = script "screenshot-copy"
"${pkgs.grim}/bin/grim - | ${pkgs.wl-clipboard}/bin/wl-copy";
"--release ${modifier}+Shift+Print" = script "screenshot-area" ''
${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" Pictures/$(date +'%Y-%m-%d+%H:%M:%S').png'';
"--release ${modifier}+Control+Shift+Print" =
script "screenshot-area-copy" ''
${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.wl-clipboard}/bin/wl-copy'';
"${modifier}+x" = "focus output right";
"${modifier}+Shift+x" = "move workspace to output right";
"${modifier}+F5" = "reload";
"${modifier}+Shift+F5" = "exit";
"${modifier}+Shift+h" = "layout splith";
"${modifier}+Shift+v" = "layout splitv";
"${modifier}+h" = "split h";
"${modifier}+v" = "split v";
"${modifier}+F1" = "move to scratchpad";
"${modifier}+F2" = "scratchpad show";
"${modifier}+F11" = "output * dpms off";
"${modifier}+F12" = "output * dpms on";
# "${modifier}+End" = "exec ${lock}";
"${modifier}+p" = "sticky toggle";
"${modifier}+backslash" =
script "0x0" ''wl-paste | curl -F"file=@-" https://0x0.st | wl-copy'';
"${modifier}+b" = "focus mode_toggle";
"XF86AudioPlay" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl pp";
"XF86AudioNext" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl next";
"XF86AudioPrev" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl prev";
"XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
"XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
"XF86AudioMute" = "exec ${pkgs.pamixer}/bin/pamixer -t";
"Shift+XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 2";
"Shift+XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 2";
"button2" = "kill";
"--whole-window ${modifier}+button2" = "kill";
} // builtins.listToAttrs (builtins.map (x: {
name = "${modifier}+${builtins.elemAt x 0}";
value = "workspace ${builtins.elemAt x 1}";
}) workspaces) // builtins.listToAttrs (builtins.map (x: {
name = "${modifier}+Shift+${builtins.elemAt x 0}";
value = "move container to workspace ${builtins.elemAt x 1}";
}) workspaces));
keycodebindings = { };
workspaceLayout = "tabbed";
workspaceAutoBackAndForth = true;
input = {
"type:touchpad" = {
accel_profile = "adaptive";
dwt = "enabled";
middle_emulation = "enabled";
natural_scroll = "enabled";
tap = "enabled";
};
"type:mouse" = {
accel_profile = "flat";
natural_scroll = "disabled";
};
"type:keyboard" = {
xkb_layout = "us,ru";
xkb_options = "grp:win_space_toggle";
};
"3468:12:C-Media_USB_Headphone_Set" = {
events = "disabled";
};
};
output = {
"*".bg = "${/. + ../../../misc/wallpaper} fill";
"*".scale = "1";
};
};
wrapperFeatures = { gtk = true; };
xwayland = true;
extraConfig = ''
default_border pixel 1
hide_edge_borders --i3 smart
exec pkill swaynag
exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
'';
extraSessionCommands = ''
# export SDL_VIDEODRIVER=wayland
export GDK_BACKEND=wayland
export QT_QPA_PLATFORM=wayland-egl
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
export XDG_CURRENT_DESKTOP=sway
export XDG_SESSION_DESKTOP=sway
export XDG_SESSION_TYPE=wayland
export _JAVA_AWT_WM_NONPARENTING=1
export _JAVA_AWT_WM_NONREPARENTING=1
'';
};
}

View File

@ -0,0 +1,10 @@
{ config, pkgs, lib, ... }: {
services.tor = {
enable = true;
client.enable = true;
};
services.privoxy = {
enable = true;
enableTor = true;
};
}

View File

@ -10,7 +10,7 @@
}; };
environment.sessionVariables = { environment.sessionVariables = {
XDG_CURRENT_DESKTOP = "X-Generic"; # XDG_CURRENT_DESKTOP = "X-Generic";
DE = "generic"; DE = "generic";
}; };
} }

View File

@ -43,8 +43,8 @@
shellAliases = { shellAliases = {
"clr" = "clear"; "clr" = "clear";
"weather" = "curl wttr.in/Volzhskiy"; "weather" = "curl wttr.in/Volzhskiy";
"rede" = "systemctl --user start redshift.service &"; "rede" = "systemctl --user start gammastep.service &";
"redd" = "systemctl --user stop redshift.service &"; "redd" = "systemctl --user stop gammastep.service &";
"show-packages" = "_ nix-store -q --references /run/current-system/sw"; "show-packages" = "_ nix-store -q --references /run/current-system/sw";
"nsp" = "nix-shell --run zsh -p"; "nsp" = "nix-shell --run zsh -p";
"grep" = "${pkgs.ripgrep}/bin/rg"; "grep" = "${pkgs.ripgrep}/bin/rg";

View File

@ -4,7 +4,8 @@ let
in in
with config.deviceSpecific; { with config.deviceSpecific; {
services.xserver = { services.xserver = {
enable = true; enable = false;
# enable = true;
# TODO: Disable natural scrolling for external mouse # TODO: Disable natural scrolling for external mouse
libinput = { libinput = {

View File

@ -21,27 +21,28 @@
kitty kitty
mangohud mangohud
mpv mpv
ncmpcpp # ncmpcpp
packages packages
piper
rofi rofi
spotify spotify
steam steam
syncthing syncthing
# urxvt
vivaldi vivaldi
vscode vscode
cursor cursor
direnv direnv
dunst
fonts fonts
gtk gtk
i3
i3status-rust i3status-rust
kde kde
light light
mako
nix-index nix-index
picom picom
print-scan print-scan
tor
sway
]; ];
} }

View File

@ -10,6 +10,7 @@
kitty kitty
coturn coturn
gitea
mailserver mailserver
matrix-synapse matrix-synapse
nginx nginx

View File

@ -1,7 +1,5 @@
{ inputs, ... }: { { inputs, ... }: {
imports = with inputs.self.nixosModules; with inputs.self.nixosProfiles; [ imports = with inputs.self.nixosModules; with inputs.self.nixosProfiles; [
./desktop.nix ./desktop.nix
flutter
]; ];
} }

View File

@ -0,0 +1,90 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p curl jq unzip
# shellcheck shell=bash
set -eu -o pipefail
# can be added to your configuration with the following command and snippet:
# $ ./pkgs/misc/vscode-extensions/update_installed_exts.sh > extensions.nix
#
# packages = with pkgs;
# (vscode-with-extensions.override {
# vscodeExtensions = map
# (extension: vscode-utils.buildVscodeMarketplaceExtension {
# mktplcRef = {
# inherit (extension) name publisher version sha256;
# };
# })
# (import ./extensions.nix).extensions;
# })
# ]
# Helper to just fail with a message and non-zero exit code.
function fail() {
echo "$1" >&2
exit 1
}
# Helper to clean up after ourselves if we're killed by SIGINT.
function clean_up() {
TDIR="${TMPDIR:-/tmp}"
echo "Script killed, cleaning up tmpdirs: $TDIR/vscode_exts_*" >&2
rm -Rf "$TDIR/vscode_exts_*"
}
function get_vsixpkg() {
N="$1.$2"
# Create a tempdir for the extension download.
EXTTMP=$(mktemp -d -t vscode_exts_XXXXXXXX)
URL="https://$1.gallery.vsassets.io/_apis/public/gallery/publisher/$1/extension/$2/latest/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage"
# Quietly but delicately curl down the file, blowing up at the first sign of trouble.
curl --silent --show-error --fail -X GET -o "$EXTTMP/$N.zip" "$URL"
# Unpack the file we need to stdout then pull out the version
VER=$(jq -r '.version' <(unzip -qc "$EXTTMP/$N.zip" "extension/package.json"))
# Calculate the SHA
SHA=$(nix-hash --flat --base32 --type sha256 "$EXTTMP/$N.zip")
# Clean up.
rm -Rf "$EXTTMP"
# I don't like 'rm -Rf' lurking in my scripts but this seems appropriate.
cat <<-EOF
{
name = "$2";
publisher = "$1";
version = "$VER";
sha256 = "$SHA";
}
EOF
}
# See if we can find our `code` binary somewhere.
if [ $# -ne 0 ]; then
CODE=$1
else
CODE=$(command -v code || command -v codium)
fi
if [ -z "$CODE" ]; then
# Not much point continuing.
fail "VSCode executable not found"
fi
# Try to be a good citizen and clean up after ourselves if we're killed.
trap clean_up SIGINT
# Begin the printing of the nix expression that will house the list of extensions.
printf '{ extensions = [\n'
# Note that we are only looking to update extensions that are already installed.
for i in $($CODE --list-extensions)
do
OWNER=$(echo "$i" | cut -d. -f1)
EXT=$(echo "$i" | cut -d. -f2)
get_vsixpkg "$OWNER" "$EXT"
done
# Close off the nix expression.
printf '];\n}'